Na versão 8.2 existe sim. Cheguei até a colocar nos servidores o 8.2 para suprir essa minha carência, mas foi sem sucesso.
Daniel Cordeiro joao cosme de oliveira junior escreveu: > existe a seguinte sentenca? > > drop if exists?? > me lembro q nas versoes 8.1 se nao me engano para tras nao existia > > Em Terça 30 Janeiro 2007 23:16, Daniel Cordeiro escreveu: > >> Olá Osvaldo, >> >> Já tinha procurado por execute para ver se criava não a tabela, porque >> quem deve cria-la é o sistema web para recolher os dados da sessão, mas >> as procedures, para que, acabe burlando esta situação (li essa dica em >> algum lugar que não guardei o endereço). Deste modo, eu criaria uma >> procedure que criaria dinamicamente outra procedure em tempo de execução >> e toda vez que fosse solitado. Mas não obtive sucesso. ;( >> >> De qualquer forma, muito obrigado. >> >> >> Daniel Cordeiro >> >> Osvaldo Rosario Kussama escreveu: >> >>> Daniel Cordeiro escreveu: >>> >>>> Olá Everaldo, >>>> >>>> Obrigado pela ajuda, infelismente não funcionou como eu esperava. >>>> >>>> Eu preciso saber se a tabela da minha sessão foi criado, mas o que >>>> acontece é que a consulta que você me passou vai me mostrar a tabela >>>> temporária de todas as sessões. E não somente a minha. >>>> >>>> Na verdade, o que acontece comigo é que como uso um sistema web com >>>> um número muito alto de requisições, preciso manter minha conexão >>>> persistente. A cada recarregamneto da tela, eu tenho que ver se a >>>> tabela temporária existe (ou caso a conexão tenha se expirado), se >>>> não exisitir, eu a crio e preencho com informações baśicas recolhidas >>>> da sessão do PHP. >>>> >>>> Eu estava fazendo o trabalho sempre removendo e recriando as funções >>>> com o comando DROP IF EXIST, só que eu não sabia que as procedures >>>> quando são executadas na seção, são na verdade COMPILADAS no momento >>>> da sua primeira execução, de tal forma que as informações da tabela >>>> que ele extrai são registrados na procedure através dos OIDS. Como os >>>> OIDS mudam porque eu sempre recriava a tabela temporária, mas a seção >>>> não era expirada, não consequia realizar as operações que desejava >>>> porque dava um erro, pois a procedure procurava os dados em um OID >>>> inexistente. >>>> >>> Utilize o EXECUTE para a criação da tabela temporária. >>> http://www.postgresql.org/docs/8.2/interactive/plpgsql-statements.html#PL >>> PGSQL-STATEMENTS-EXECUTING-DYN >>> >>> "Unlike all other commands in PL/pgSQL, a command run by an EXECUTE >>> statement is not prepared and saved just once during the life of the >>> session. Instead, the command is prepared each time the statement is >>> run." >>> >>> >>>> Como as vezes eu não sei quando a seção foi expirada, não tem como eu >>>> ficar a cada requisição removendo e recriando a tabela, mas o espaço >>>> ocupado não é meu problema. >>>> >>>> >>>> Muito obrigado pela sua ajuda. >>>> >>>> Daniel Cordeiro >>>> >>>> Evandro Ricardo Silvestre escreveu: >>>> >>>>> Daniel, >>>>> >>>>> Tente o seguinte: >>>>> >>>>> SELECT a.relname AS tabela >>>>> FROM pg_class a >>>>> WHERE (a.relkind = 'r') and relnamespace <> 2200 >>>>> >>>>> Vai te retornar todas as tabelas temporárias. >>>>> >>>>> Sinceramente, não confio em fazer acesso a tabelas temporárias do >>>>> jeito que deseja fazer! Particularmente prefiro apagar a tabela >>>>> temporária sempre após o uso, para não ocupar espaço! >>>>> >>>>> Att >>>>> >>>>> Evandro >>>>> >>>>> Daniel Cordeiro wrote: >>>>> >>>>>> Olá a todos mais uma vez, >>>>>> >>>>>> Além do problema das conexões, gostaria de saber como descubro a >>>>>> tabela temporária que esta ativa na seção corrente, pois gostaria >>>>>> de gravar algumas informações nesta tabela temporária ( carregadas >>>>>> da seção do PHP) para interagir diretamente através de gatilhos e >>>>>> procedures que se baseam nestas informações ( e assim, tirando a >>>>>> necessidade de se passar parâmetros para as procedures). >>>>>> >>>>>> Estou usando PostGreSQL 8.2, e a única coisa que vi nesta versão é >>>>>> como deletar a tabela com a comando DROP TABLE IF EXISTS. >>>>>> >>>>>> Procurando pelas tabelas do sistema, eu encontrei a tabela com o >>>>>> sequinte comando: >>>>>> >>>>>> =#SELECT schemaname,tablename from pg_tables where tablename = >>>>>> 'teste'; >>>>>> >>>>>> O problema é que ela me retorna todas as tabelas temporárias de >>>>>> todas as sessões ativas, da sequinte forma: >>>>>> >>>>>> schemaname | tablename >>>>>> ------------+----------- >>>>>> pg_temp_1 | teste >>>>>> pg_temp_2 | teste >>>>>> >>>>>> >>>>>> Gostaria de uma forma de descobrir se uma determinada tabela >>>>>> temporária existe na MINHA SESSAO CORRENTE, para que, caso não >>>>>> exista, eu possa cria-la na minha conexão persistente. >>>>>> >>> []s >>> Osvaldo >>> >>> >>> _______________________________________________________ Yahoo! Mail - >>> Sempre a melhor op��o para voc�! Experimente j� e veja as novidades. >>> http://br.yahoo.com/mailbeta/tudonovo/ >>> ------------------------------------------------------------------------ >>> >>> _______________________________________________ >>> Grupo de Usuários do PostgreSQL no Brasil >>> Antes de perguntar consulte o manual >>> http://pgdocptbr.sourceforge.net/ >>> >>> Para editar suas opções ou sair da lista acesse a página da lista em: >>> http://pgfoundry.org/mailman/listinfo/brasil-usuarios >>> > _______________________________________________ > Grupo de Usuários do PostgreSQL no Brasil > Antes de perguntar consulte o manual > http://pgdocptbr.sourceforge.net/ > > Para editar suas opções ou sair da lista acesse a página da lista em: > http://pgfoundry.org/mailman/listinfo/brasil-usuarios -- /* "O único lugar aonde o sucesso vem antes do trabalho é no dicionário". (Albert Einstein) */ +--------------------------------------------------------------------------+ | Daniel Cordeiro de Morais Neto | | [EMAIL PROTECTED] | | Administrador de Redes | | ADM Soluções em Informática LTDA | | www.admsi.com.br | | F. (083)244-0757 | | Debian User - 453 - Sarge | | Gentoo User | +--------------------------------------------------------------------------+ _______________________________________________ Grupo de Usuários do PostgreSQL no Brasil Antes de perguntar consulte o manual http://pgdocptbr.sourceforge.net/ Para editar suas opções ou sair da lista acesse a página da lista em: http://pgfoundry.org/mailman/listinfo/brasil-usuarios
