Re: [pgbr-geral] Inserir e trazer e buscar
Olá, O returning está disponível a partir da versão 8.2 2009/3/19 Osvaldo Kussama > 2009/3/19 Thiago M. Figueiredo : > > Osvaldo Kussama wrote: > >> > > >> > > Opa Muito obrigado pela ajuda entendi, então meu problema pode ser outro. > > > > Qual versão de postgres você tem instalada? > > pois quando dou esse comando ele me retorna o seguinte erro: > > > > ERRO: syntax error em ou próximo a "RETURNING" at character 42 > > > > Pelo que entendi ele não esta entendendo o comando RETURNING certo? > > > > > bdteste=# SELECT VERSION(); > version > > > PostgreSQL 8.3.6 on i486-pc-linux-gnu, compiled by GCC gcc-4.3.real > (Ubuntu 4.3.2-1ubuntu12) 4.3.2 > (1 registro) > > A cláusula RETURNING foi incluida na versão 8.2. Se, por acaso, você > estiver utilizando uma versão mais antiga então faça uso das funções > de manipulação de sequencia, em particular a currval, ou, melhor > ainda, dê um upgrade em seu PostgreSQL. > > Osvaldo > ___ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > []s -- JotaComm http://jotacomm.wordpress.com http://www.dextra.com.br/postgres ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Inserir e trazer e buscar
2009/3/19 Thiago M. Figueiredo : > Osvaldo Kussama wrote: >> >> > Opa Muito obrigado pela ajuda entendi, então meu problema pode ser outro. > > Qual versão de postgres você tem instalada? > pois quando dou esse comando ele me retorna o seguinte erro: > > ERRO: syntax error em ou próximo a "RETURNING" at character 42 > > Pelo que entendi ele não esta entendendo o comando RETURNING certo? > bdteste=# SELECT VERSION(); version PostgreSQL 8.3.6 on i486-pc-linux-gnu, compiled by GCC gcc-4.3.real (Ubuntu 4.3.2-1ubuntu12) 4.3.2 (1 registro) A cláusula RETURNING foi incluida na versão 8.2. Se, por acaso, você estiver utilizando uma versão mais antiga então faça uso das funções de manipulação de sequencia, em particular a currval, ou, melhor ainda, dê um upgrade em seu PostgreSQL. Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Inserir e trazer e buscar
Osvaldo Kussama wrote: > 2009/3/19 Thiago M. Figueiredo : > >> Osvaldo Kussama wrote: >> >>> 2009/3/19 Thiago M. Figueiredo : >>> >>> Olá Pessoa, Tudo bem? Estou fazendo um sistema de controle de contato mais agora pintou uma duvida cruel eu insiro e ao mesmo tempo tenho que retornar um resultado dos dados que insiro, isso é era simples em outros sistemas que já tinha feito porque existia um dado que deveria ser unico na base e deveria ser preenchido e era obrigatório (CPJ) ou seja eu inseria e a traves deste dado realizava busca e retornava os dados agora sistema que estou fazendo é diferente pois o unico dado que deve ser unico é o dado serial que é gerado pelo próprio postgres automaticamente queria saber se existe algum esquema para inserir e trazer o id deste usuário no postgres que é o serial que falei que é criado automaticamente. >>> Utilize a cláusula RETURNING. Veja: >>> http://www.postgresql.org/docs/current/interactive/sql-insert.html >>> >>> >>> >> Opa Muito obrigado pela ajuda mais ainda to com duvida. >> >> Não seria assim: >> INSERT INTO table (coluna1, caluna2) VALUES ('valor1', 'valor3') >> RETURNING id_linha; -- Id linha é o serial >> >> > > > Sim, veja o exemplo: > bdteste=# CREATE TEMP TABLE foo( > bdteste(# id SERIAL PRIMARY KEY, > bdteste(# bar text); > NOTA: CREATE TABLE criará sequência implícita "foo_id_seq" para > coluna serial "foo.id" > NOTA: CREATE TABLE / PRIMARY KEY criará índice implícito "foo_pkey" > na tabela "foo" > CREATE TABLE > bdteste=# INSERT INTO foo(bar) VALUES ('a') RETURNING id; > id > > 1 > (1 registro) > > INSERT 0 1 > bdteste=# INSERT INTO foo(bar) VALUES ('b') RETURNING id; > id > > 2 > (1 registro) > > INSERT 0 1 > bdteste=# SELECT * FROM foo; > id | bar > +- > 1 | a > 2 | b > (2 registros) > > -- > -- Para o caso de um tipo serial você tem a opção de utilizar a função currval > -- > bdteste=# INSERT INTO foo(id,bar) VALUES (DEFAULT, 'c'); > INSERT 0 1 > bdteste=# SELECT currval('foo_id_seq'); > currval > - >3 > (1 registro) > > bdteste=# SELECT * FROM foo; > id | bar > +- > 1 | a > 2 | b > 3 | c > (3 registros) > > Osvaldo > ___ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > Opa Muito obrigado pela ajuda entendi, então meu problema pode ser outro. Qual versão de postgres você tem instalada? pois quando dou esse comando ele me retorna o seguinte erro: ERRO: syntax error em ou próximo a "RETURNING" at character 42 Pelo que entendi ele não esta entendendo o comando RETURNING certo? Muito Obrigado -- Thiago M. Figueiredo E-Mail: thi...@pzpzine.com E-Mail: tmarquesfiguer...@yahoo.com.br Cel: (55 11) 8627-5343 http://www.pzpzine.com http://www.thiagofigueiredo.com 'Open Source' o conhecimento é do mundo! :P Usar software proprietario R$ 450,00 com MasterCard, usar software livre não tem preço :D Software livre pensamento proprietário ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Inserir e trazer e buscar
2009/3/19 Thiago M. Figueiredo : > Osvaldo Kussama wrote: >> 2009/3/19 Thiago M. Figueiredo : >> >>> Olá Pessoa, >>> >>> Tudo bem? >>> >>> Estou fazendo um sistema de controle de contato mais agora pintou uma >>> duvida cruel eu insiro e ao mesmo tempo tenho que retornar um resultado >>> dos dados que insiro, isso é era simples em outros sistemas que já tinha >>> feito porque existia um dado que deveria ser unico na base e deveria ser >>> preenchido e era obrigatório (CPJ) ou seja eu inseria e a traves deste >>> dado realizava busca e retornava os dados agora sistema que estou >>> fazendo é diferente pois o unico dado que deve ser unico é o dado serial >>> que é gerado pelo próprio postgres automaticamente queria saber se >>> existe algum esquema para inserir e trazer o id deste usuário no >>> postgres que é o serial que falei que é criado automaticamente. >>> >>> >> >> >> Utilize a cláusula RETURNING. Veja: >> http://www.postgresql.org/docs/current/interactive/sql-insert.html >> >> > Opa Muito obrigado pela ajuda mais ainda to com duvida. > > Não seria assim: > INSERT INTO table (coluna1, caluna2) VALUES ('valor1', 'valor3') > RETURNING id_linha; -- Id linha é o serial > Sim, veja o exemplo: bdteste=# CREATE TEMP TABLE foo( bdteste(# id SERIAL PRIMARY KEY, bdteste(# bar text); NOTA: CREATE TABLE criará sequência implícita "foo_id_seq" para coluna serial "foo.id" NOTA: CREATE TABLE / PRIMARY KEY criará índice implícito "foo_pkey" na tabela "foo" CREATE TABLE bdteste=# INSERT INTO foo(bar) VALUES ('a') RETURNING id; id 1 (1 registro) INSERT 0 1 bdteste=# INSERT INTO foo(bar) VALUES ('b') RETURNING id; id 2 (1 registro) INSERT 0 1 bdteste=# SELECT * FROM foo; id | bar +- 1 | a 2 | b (2 registros) -- -- Para o caso de um tipo serial você tem a opção de utilizar a função currval -- bdteste=# INSERT INTO foo(id,bar) VALUES (DEFAULT, 'c'); INSERT 0 1 bdteste=# SELECT currval('foo_id_seq'); currval - 3 (1 registro) bdteste=# SELECT * FROM foo; id | bar +- 1 | a 2 | b 3 | c (3 registros) Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Inserir e trazer e buscar
Osvaldo Kussama wrote: > 2009/3/19 Thiago M. Figueiredo : > >> Olá Pessoa, >> >> Tudo bem? >> >> Estou fazendo um sistema de controle de contato mais agora pintou uma >> duvida cruel eu insiro e ao mesmo tempo tenho que retornar um resultado >> dos dados que insiro, isso é era simples em outros sistemas que já tinha >> feito porque existia um dado que deveria ser unico na base e deveria ser >> preenchido e era obrigatório (CPJ) ou seja eu inseria e a traves deste >> dado realizava busca e retornava os dados agora sistema que estou >> fazendo é diferente pois o unico dado que deve ser unico é o dado serial >> que é gerado pelo próprio postgres automaticamente queria saber se >> existe algum esquema para inserir e trazer o id deste usuário no >> postgres que é o serial que falei que é criado automaticamente. >> >> > > > Utilize a cláusula RETURNING. Veja: > http://www.postgresql.org/docs/current/interactive/sql-insert.html > > Osvaldo > ___ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > Opa Muito obrigado pela ajuda mais ainda to com duvida. Não seria assim: INSERT INTO table (coluna1, caluna2) VALUES ('valor1', 'valor3') RETURNING id_linha; -- Id linha é o serial Muito Obrigado Att, Thiago M. Figueiredo -- Thiago M. Figueiredo E-Mail: thi...@pzpzine.com E-Mail: tmarquesfiguer...@yahoo.com.br Cel: (55 11) 8627-5343 http://www.pzpzine.com http://www.thiagofigueiredo.com 'Open Source' o conhecimento é do mundo! :P Usar software proprietario R$ 450,00 com MasterCard, usar software livre não tem preço :D Software livre pensamento proprietário ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Inserir e trazer e buscar
2009/3/19 Thiago M. Figueiredo : > Olá Pessoa, > > Tudo bem? > > Estou fazendo um sistema de controle de contato mais agora pintou uma > duvida cruel eu insiro e ao mesmo tempo tenho que retornar um resultado > dos dados que insiro, isso é era simples em outros sistemas que já tinha > feito porque existia um dado que deveria ser unico na base e deveria ser > preenchido e era obrigatório (CPJ) ou seja eu inseria e a traves deste > dado realizava busca e retornava os dados agora sistema que estou > fazendo é diferente pois o unico dado que deve ser unico é o dado serial > que é gerado pelo próprio postgres automaticamente queria saber se > existe algum esquema para inserir e trazer o id deste usuário no > postgres que é o serial que falei que é criado automaticamente. > Utilize a cláusula RETURNING. Veja: http://www.postgresql.org/docs/current/interactive/sql-insert.html Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral