Re: [pgbr-geral] Inserir e trazer e buscar

2009-03-20 Por tôpico JotaComm
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-03-19 Por tôpico 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


Re: [pgbr-geral] Inserir e trazer e buscar

2009-03-19 Por tôpico Thiago M. Figueiredo
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-03-19 Por tôpico Osvaldo Kussama
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

2009-03-19 Por tôpico 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
>
> 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-03-19 Por tôpico Osvaldo Kussama
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