lopesoliveira Postado Agosto 7, 2016 Denunciar Share Postado Agosto 7, 2016 Bom dia! Como faço para buscar novo código novo código no postgresql da mesma forma que é feito pelo Oracle (SELECT DISTINCT SYS_CONTEXT(''USERENV'', ''CLIENT_INFO'') CLIENT_INFO FROM DUAL) ou da mesma forma do firebird (SELECT DISTINCT RDB$GET_CONTEXT(''USER_SESSION'', ''CODIGO_NOVO'') CLIENT_INFO FROM RDB$DATABASE). Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Agosto 7, 2016 Denunciar Share Postado Agosto 7, 2016 O que seria um "código novo"? Pelo que entendi, CLIENT_INFO é um identificador do usuário atual, e o PG tem algumas variáveis e funções que são semelhantes a isso e você pode encontrá-las aqui: https://www.postgresql.org/docs/9.1/static/functions-info.html Abraços! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 lopesoliveira Postado Agosto 7, 2016 Autor Denunciar Share Postado Agosto 7, 2016 Graymalkin No Oracle após insert você consegue com select (SELECT DISTINCT SYS_CONTEXT(''USERENV'', ''CLIENT_INFO'') CLIENT_INFO FROM DUAL) pegar na sessão o código gerado da pk(sequencial) e depois atribuir para tabelas filhas , com Postgresql como seria, acho que pode ser alguma variável sim, mas qual? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Agosto 7, 2016 Denunciar Share Postado Agosto 7, 2016 Então é o que eu tinha imaginado mesmo. Você está usando um campo Serial (autonumeração), certo? Cada campo desse tipo cria uma sequência (que você pode ver em Sequences, no PgAdmin 3), e você pode obter o valor desse campo no registro recém adicionado usando: SELECT currval('public."Tabela_Campo_seq"'); Caso não tenha sido alterado, o nome da sequência é o nome da tabela + sublinhado + nome do campo + sublinhado + "seq". Pra ter certeza do nome você pode olhar lá no Sequences do seu banco de dados. Certo? Abraços! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
lopesoliveira
Bom dia!
Como faço para buscar novo código novo código no postgresql da mesma forma que é feito pelo
Oracle (SELECT DISTINCT SYS_CONTEXT(''USERENV'', ''CLIENT_INFO'') CLIENT_INFO FROM DUAL) ou
da mesma forma do firebird (SELECT DISTINCT RDB$GET_CONTEXT(''USER_SESSION'', ''CODIGO_NOVO'') CLIENT_INFO FROM RDB$DATABASE).
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.