terça-feira, 25 de setembro de 2012

Como obter o último ID após o INSERT no POSTGRES

Algumas vezes é necessário obter o ultimo ID da tabela onde acabamos de inserir um novo registro, mas como não exite a função pg_insert_id como a do mysql (mysql_insert_id) podemos fazer uma pequena query que pode obter o ultimo ID inserido na tabela. Vejamos o exemplo abaixo

Estrutura da Tabela

CREATE TABLE cliente(

id_cliente SERIAL NOT NULL PRIMARY KEY,

nm_cliente VARCHAR(50) NOT NULL,

dtniver_cliente DATE,

genero_cliente CHAR(1) NOT NULL,

);

Vamos pegar o seguinte comando:

$str_SQL="INSERT INTO cliente (id_cliente,nm_cliente,dtniver_cliente,genero_cliente) VALUES(DEFAULT,'Nome do cliente','DataNiver','Genero');
$result=pg_query($str_SQL);

if(pg_affected_rows($result)>0){

$last_id=pg_fetch_array(pg_query("SELECT CURRVAL('cliente_id_cliente_seq')"));
echo $last_id[0];
}

Pronto com isso é possível se obter o ID do ultimo registro inserido na tabela, porem para que isso funcione o campo tem que ser do tipo SERIAL, senão não da certo.

Nenhum comentário:

Postar um comentário