Re: Ignorar las restricciones

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.
>
>
>

In response to

Responses

Browse pgsql-es-ayuda by date

  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