INSERT INTO PROFESOR(cod_pro, nombre) VALUES('JR', 'Juan Ruiz'); -- Fails here, constraint is INITIALLY IMMEDIATE INSERT INTO PROFESOR(cod_pro, nombre) VALUES('JR', 'Javier Pérez'); ROLLBACK; -- Don't save the first insertion -- Change constraint to be INITIALLY DEFERRED ALTER TABLE profesor DROP PRIMARY KEY CASCADE KEEP INDEX; ALTER TABLE profesor ADD CONSTRAINT cp_prof PRIMARY KEY(cod_pro) INITIALLY DEFERRED DEFERRABLE; -- Because we used CASCADE to DROP the primary key constraint, -- we need to restore the FOREIGN KEY in docencia ALTER TABLE docencia ADD CONSTRAINT ca_doc_prof FOREIGN KEY(cod_pro) REFERENCES profesor(cod_pro) INITIALLY IMMEDIATE DEFERRABLE; INSERT INTO PROFESOR(cod_pro, nombre) VALUES('JR', 'Juan Ruiz'); INSERT INTO PROFESOR(cod_pro, nombre) VALUES('JR', 'Javier Pérez'); -- Fails here, constraint is INITIALLY DEFERRED COMMIT; -- Restore constraint to initial setting ALTER TABLE profesor DROP PRIMARY KEY CASCADE KEEP INDEX; ALTER TABLE profesor ADD CONSTRAINT cp_prof PRIMARY KEY(cod_pro) INITIALLY IMMEDIATE DEFERRABLE; ALTER TABLE docencia ADD CONSTRAINT ca_doc_prof FOREIGN KEY(cod_pro) REFERENCES profesor(cod_pro) INITIALLY IMMEDIATE DEFERRABLE;