Skip site navigation (1) Skip section navigation (2)

Re: fallo en insert?

From: "Cesar A(dot)" <carbonarac(at)cantv(dot)net>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: fallo en insert?
Date: 2004-05-28 17:34:17
Message-ID: 153470-220045528173417137@cantv.net (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
>> Tengo una tabla direccion (sec varchar(), calle varchar(), num_casa
>> vachar(), dir_id serial);
>> y otra tabla persona (nom varchar(), ape varchar(), doc_id varchar()
>> primary key, dir_id int references direccion (dir_id));

>De aca sale que doc_id es llave primaria de la tabla persona, y por lo
>tanto tiene un indice unico (no puede tener valores duplicados) y es no
>null (no acepta valores nulos).

Sip, pero doc_id es un valor entrable por el formulario, unico y no nulo,
el indice (persona_pkey) se asigan solo por cada doc_id, ¿no?

>> Un formulario que captura los datos, se lo asa a procesar.php que tiene
el
>> siguiente codigo:
>> <body>
>>   <?php
>>       $dbname="dbname=habitantes";
>>       $insertar_direc="insert into
>>                             direccion
>>                             values('$sec','$calle','$num_casa')";;
>>     $conexion=pg_connect($dbname);;
>>     pg_exec($conexion,$insertar_direc);
>>     $codigo_direc="direccion.dir_id";
>>     $insertar_hab="insert into
>>                           persona
>> values('$nom','$ape','$d_i',$codigo_direc)";;
>>     pg_exec($conexion,$insertar_hab);
>>     pg_close($conexion);
>>   ?>
>>
>> Y me arroja el siguiente error:
>> Warning: PostgreSQL query failed: ERROR: Cannot insert a duplicate key
into
>> unique index persona_pkey in /home/cesar/public_html/p_reg_persona.php on

>Te dice que estas tratando de ingresar en el campo doc_id (la llave
>primaria de la tabla) un valor que ya existe y se viola la unicidad de la
>llave primaria.

Pero estoy haciendo pruebas, y en doc_id  no estan los valores que intento
introducir...

Como ven tngo dos inserciones, la de direccion y la de persona. La primera
se ejecuta perfectamente. Si a la segunda le elimino la insercion de la
clave ajena (dir_id) funciona perfectamente:

$insertar_hab="insert into
                          persona(nombre,apellido,doc_id,)
                          values('$nom','$ape','$d_i');";
pg_exec($conexion,$insertar_hab);

Repasemos...
En la tabla direccion tengo la clave primaria que se genera automaticamente
(dir_id de tipo serial), esa clave la agrego como ajena a la tabla persona
(dir_id de tipo int references direccion(dir_id))

Al intentar hacer esto es que me empiezan a saltar fallos...¿es posible que
lo tenga mal declarado? o algo???


Responses

pgsql-es-ayuda by date

Next:From: MulticastDate: 2004-05-28 21:19:37
Subject: Real Aplication Cluster
Previous:From: Martin MarquesDate: 2004-05-28 15:41:40
Subject: Re: fallo en insert?

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group