2012/2/5, Moisés P. Sena <[email protected]>:
> Bom dia pessoal!
>
> Tablela:
>
> CREATE TABLE usuario (id BIGSERIAL NOT NULL PRIMARY KEY, login VARCHAR(20));
>
> Normalmente quando vou cadastrar um usuario faco assim:
>
> val id = connection.prepareStatement("select
> nextval('usuario_id_seq')").executeQuery().getInt(0)
> val st = connection.prepareStatement("insert into usuario (id, login)
> values (?, ?)")
> st.setInt(0, id)
> st.setString(1, "the_login")
> st.executeUpdate
>
> Existe uma forma de eu inserir o registro obtendo o UUID dele apos a
> inserçao para eu nao precisar ficar executando o 'SELECT nextval()' ?
>
> OBS: Existem outras aplicacoes que tambem inserem nesta mesma tabela.
>
Em primeiro lugar sequence [1] e uuid [2] são coisas diferentes.
Para utilizar automaticamente uma sequence ao inserir um registro é só
especificar que o campo é serial ou informar na cláusula DEFAULT do
campo:
DEFAULT nextval('usuario_id_seq')
Caso necessite saber qual o valor foi gerado na inserção utilize a
cláusula RETURNIG [3].
Osvaldo
[1]
http://www.postgresql.org/docs/current/interactive/datatype-numeric.html#DATATYPE-SERIAL
[2] http://www.postgresql.org/docs/current/interactive/datatype-uuid.html
[3] http://www.postgresql.org/docs/current/interactive/sql-insert.html
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral