Problema secuencia last_value

From: Gabriel Messner <gabmessner(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Problema secuencia last_value
Date: 2009-09-21 15:03:19
Message-ID: 1708890c0909210803x9a6fa5es302f82d8efcb4b2e@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Estimad(at)s colisteros, expongo mi problema:

Tengo una base de datos con dos tablas:

La primera tabla ('propietarios') está formada por dos campos:
'id','nombre' donde id es un campo tipo serial con una secuencia
asociada 'propietario_id_seq'
La segunda tabla ('parcelas') está formada por tres campos:
'id_propiet', 'ano_compra','id' donde 'id_propiet' es el identificador
único del propietario.

Para dar de alta un nuevo propietario en la tabla 1 y las parcelas de
su propiedad en la tabla 2 tengo un script en PHP en el que ejecuto la
siguiente sintaxis:

<?
//no pongo la conexión a la base de datos

//inserto un propietario en la primera tabla
$insert_propietario = "INSERT INTO propietarios (nombre) VALUES
('Manuel Alonso')";
pg_query($insert_propietario);

//Ahora quiero recuperar el id asignado por la secuencia
'propietario_id_seq' a este usuario para pasarlo como variable a la
tabla 'parcelas'
$lastid = "SELECT last_value from propietario_id_seq;";
$qery_lastid = pg_query($lastid);
$val_lastid = pg_fetch_result($qery_lastid, 0, 0);

//inserto una fila en la tabla 'parcelas'
$insert_parcela = "INSERT INTO parcelas (ano_compra,id_propiet) VALUES
("2009",'". $val_lastid."')";
pg_query($insert_parcela);

?>

Todo marcha bien hasta que reinicio el servidor postgres. Justo
después de reiniciarlo al insertar un nuevo propietario no me devuelve
el last_value de la secuencia.

Alguien puede decirme como solucionar esto o si estoy enfocando mal el script?

Gracias por adelantado.

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2009-09-21 15:04:05 Re: Problemas de concurrencia?
Previous Message Calabaza 2009-09-21 14:56:35 Re: Tildes