|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Dec 2006
Messaggi: 71
|
[SQL]Postgresql 9. Problema Inserimento Tabella per foreign Key
Ho la seguenti tabelle
CREATE TABLE libro ( id integer NOT NULL, titolo character varying(128) NOT NULL, codice_isbn character varying(64) NOT NULL, costo double precision NOT NULL, data_pubblicazione date NOT NULL, CONSTRAINT pk_libro PRIMARY KEY (id), CONSTRAINT fk_autore FOREIGN KEY (id) REFERENCES autore (id_libro) MATCH SIMPLE ON UPDATE CASCADE ON DELETE CASCADE, CONSTRAINT fk_prestito FOREIGN KEY (id) REFERENCES prestito (id_libro) MATCH SIMPLE ON UPDATE CASCADE ON DELETE CASCADE ) WITH ( OIDS=FALSE ); ALTER TABLE libro OWNER TO postgres; CREATE TABLE prestito ( id bigint NOT NULL, inizio_prestito date NOT NULL, fine_prestito date NOT NULL, ammenda double precision DEFAULT 0, id_utente bigint NOT NULL, id_libro bigint NOT NULL, CONSTRAINT pk_prestito PRIMARY KEY (id), CONSTRAINT ucq_cliente UNIQUE (id_utente), CONSTRAINT ucq_libro UNIQUE (id_libro) ) WITH ( OIDS=FALSE ); ALTER TABLE prestito OWNER TO postgres; Devo inserire un elemento solo in Libro. Come posso disabilitare temporaneamente il vincolo di foreign Key tra la tabella libro e prestito? Mi potreste scrivere del codice, se esiste, per risolvere il problema |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
|
Dovresti eliminare la foreign key.
Prova usando qualcosa di simile (non provata) : ALTER TABLE libro DROP CONSTRAINT fk_autore Ovvio che poi sei costretto a ricrearla se vuoi ripristinare il vincolo: ALTER TABLE libro ADD CONSTRAINT fk_autore FOREIGN KEY (id) REFERENCES prestito (id_libro) MATCH SIMPLE; Non è una cosa molto bella, eliminare e ricreare una foreign_key di questo tipo. Al posto tuo, eliminerei tale vincolo, o se proprio vuoi un comportamento simile, può provare ad usare i trigger. Con postgres vi sono comandi sql che permettono di disabilitare ed abilitare un trigger a piacimento. link:http://www.postgresql.org/docs/8.1/s...ltertable.html
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:35.



















