Salve vorrei saper perché il seguente codice mi restituisce errore (in basso a tutto). Disattivo tutte le chiavi esterne della chiave primaria che voglio eliminare, elimino sia la chiave primaria che due sue chiave esterne e riabilito i vincoli. Dove sbaglio?
create or replace
TRIGGER Elimina_Diagramma BEFORE DELETE ON Diagrammi
FOR EACH ROW
BEGIN
ALTER TABLE Entita DISABLE CONSTRAINT FK_ENT;
ALTER TABLE Relazioni DISABLE CONSTRAINT FK_REL;
ALTER TABLE Attributi DISABLE CONSTRAINT FK_ATT1;
ALTER TABLE Attributi DISABLE CONSTRAINT FK_ATT2;
ALTER TABLE Domini DISABLE CONSTRAINT FK_DOM;
ALTER TABLE Multivalore DISABLE CONSTRAINT FK_MULT;
ALTER TABLE Composti DISABLE CONSTRAINT FK_COMP;
ALTER TABLE Associativi DISABLE CONSTRAINT FK_ASS;
ALTER TABLE ENT_REL DISABLE CONSTRAINT FK_ENT_REL1;
ALTER TABLE ENT_REL DISABLE CONSTRAINT FK_ENT_REL2;
DELETE FROM entita WHERE diagramma = OLD.Nome;
DELETE FROM relazioni WHERE diagramma = OLD.Nome;
ALTER TABLE Entita ENABLE CONSTRAINT FK_ENT;
ALTER TABLE Relazioni ENABLE CONSTRAINT FK_REL;
ALTER TABLE Attributi ENABLE CONSTRAINT FK_ATT1;
ALTER TABLE Attributi ENABLE CONSTRAINT FK_ATT2;
ALTER TABLE Domini ENABLE CONSTRAINT FK_DOM;
ALTER TABLE Multivalore ENABLE CONSTRAINT FK_MULT;
ALTER TABLE Composti ENABLE CONSTRAINT FK_COMP;
ALTER TABLE Associativi ENABLE CONSTRAINT FK_ASS;
ALTER TABLE ENT_REL ENABLE CONSTRAINT FK_ENT_REL1;
ALTER TABLE ENT_REL ENABLE CONSTRAINT FK_ENT_REL2;
END;
L'errore è "trigger non valido!"
Allegati: