From: | Víctor Pérez Juárez <victor(dot)perez(at)e-evolution(dot)com> |
---|---|
To: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Ignorar las restricciones |
Date: | 2005-10-03 18:42:21 |
Message-ID: | 43417B8D.8080904@e-evolution.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola Alvaro!
Asi es Compiere!
lo del SET CONSTRAINT es esto supongo:
|BEGIN;
SET CONSTRAINTS ALL DEFERRED;
INSERT INTO appts (pid, apptsubj, apptdate)
VALUES (5, 'Negotiation', '2001-01-20');
INSERT INTO pers VALUES (5, 'Helen Kim');
COMMIT;
solo me queda una duda para que esto funcione debo crear mis tablas con
||(DEFERRABLE INITIALLY DEFERRED) como se muestra aqui:||
CREATE TABLE appts (apptid SERIAL NOT NULL PRIMARY KEY,
pid INT NOT NULL
CONSTRAINT appt__ref_pers
REFERENCES pers
ON UPDATE CASCADE
ON DELETE CASCADE
DEFERRABLE
INITIALLY DEFERRED,
apptsubj TEXT NOT NULL,
apptdate DATE NOT NULL);
Saludos
Victor
|
De hecho lo intento de esta manera
Alvaro Herrera escribió:
>On Mon, Oct 03, 2005 at 11:19:01AM -0500, Víctor Pérez Juárez wrote:
>
>
>>Hola a los amantes de PostgreSQL!
>>
>>estoy trabajando con el manejador de multiples bases de datos Druid un
>>projecto open source creado en java muy bueno.
>>
>>
>
>Compiere, me imagino.
>
>
>
>>por medio de druid migre mi esquema de una base de datos Oracle a
>>PostgreSQL incluyendo, Tablas , Views , Indices , Restriciones.
>>
>>hasta qui todo de maravilla, subo el esquema a oracle sin problemas,
>>pero cuando quiero subir mis datos las restriciones no me dejan ya que
>>obtengo errores como estos:
>>
>>
>>Key (c_bpartner_id)=(113) is not present in table "c_bpartner".
>>ERROR: insert or update on table "ad_column" violates foreign key
>>constraint "ad_column_ad_table_id_fkey"
>>
>>
>
>No puedes ignorar las restricciones. Lo que puedes hacer es eliminarlas
>(ALTER TABLE) y ponerlas de nuevo cuando tengas los datos ya levantados;
>o bien postergarlas (SET CONTRAINTS), pero para eso tienes que hacer que
>al final de la transaccion se satisfagan (es decir insertar los datos en
>la otra tabla antes que la transaccion termine).
>
>O bien puedes cambiar el orden en que se ingresan los datos de las
>tablas, poniendo primero las tablas referidas.
>
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Dario | 2005-10-03 18:53:56 | RE: Tablespace en Postgres 8 for windows |
Previous Message | josue | 2005-10-03 18:32:00 | Re: [OFF-TOPIC] Diseño de BD |