ho un problemino che non riesco a risolvere:
quando faccio
codice:
delete from pi where id=10
mi restituisce l'errore: "violazione della restrizione di chiave esterna"
anche se ho inserito la clausola "DELETE ON CASCADE"
il database è organizzato così:
codice:
CREATE table pi (
ID_PI INTEGER NOT NULL
PRIMARY KEY GENERATED ALWAYS AS IDENTITY
(START WITH 1, INCREMENT BY 1),
NOME VARCHAR(30),
INDIRIZZO VARCHAR(30)
);
CREATE table progetti (
ID_PROG INTEGER NOT NULL
PRIMARY KEY GENERATED ALWAYS AS IDENTITY
(START WITH 1, INCREMENT BY 1),
NOME VARCHAR(30)
);
CREATE table relazioni (
ID_relp INTEGER NOT NULL
PRIMARY KEY GENERATED ALWAYS AS IDENTITY
(START WITH 1, INCREMENT BY 1),
Foreign Key (fk_pi) references PI(ID_PI) on delete cascade,
foreign Key (fk_idprog) references PROGETTI(ID_PROG) on delete cascade
);
praticamente ci sono tanti progetti che possono avere tanti pi, e ogni pi può appartenere a tanti progetti.
però mi dà l'errore che ho scritto all'inizio quando provo a cancellare un pi, ho dimenticato qualcosa?
Grazie e scusate se la domanda è un pò ingenua, ma ho letto da diverse fonti guide varie e mi sembra che il codice sia corretto!