Bonjour,
Sachant que la syntaxe ON UPDATE CASCADE n'est pas reconnue dans ORACLE, il faut créer un trigger.
Exemple :
CREATE TABLE Table_P (
ID_P INTEGER NOT NULL ,
ID_E INTEGER NOT NULL ,
NUM_PRO INTEGER NOT NULL ,
NUM_L INTEGER NOT NULL ,
PRIMARY KEY(ID_P) ,
FOREIGN KEY(ID_E)
REFERENCES Table_E(ID_E)
ON DELETE CASCADE
ON UPDATE CASCADE);
Pour remplacer la syntaxe ON UPDATE CASCADE, il faut créer le trigger suivant :
CREATE OR REPLACE TRIGGER Update_Table_P
AFTER UPDATE OF ID_P ON Table_P
REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW
DECLARE
V_NEWID VARCHAR2 (6);
V_OLDID VARCHAR2 (6);
BEGIN
V_NEWID := :NEW.ID_P;
V_OLDID := :OLD.ID_P;
Jusque là je pense avoir raison.
Ce que je voudrai savoir, c'est comment créer le trigger avec cette exemple :
CREATE TABLE Table_A (
ID_A INTEGER NOT NULL IDENTITY ,
ID_R INTEGER NOT NULL ,
NUM_P SMALLINT NOT NULL ,
NUM_L SMALLINT NOT NULL ,
PRIMARY KEY(ID_A) ,
FOREIGN KEY(NUM_L)
REFERENCES Table_L (NUM_L)
ON DELETE CASCADE
ON UPDATE CASCADE,
FOREIGN KEY(ID_R, NUM_P)
REFERENCES Table_R(ID_R, NUM_P)
ON DELETE CASCADE
ON UPDATE CASCADE);
Pouvez-vous m'aider ?