scusa è perchè ho scritto il codice a memoria, ho dimenticato quei due campi.
ma la tabella la crea, il problema è quando provo a fare delete di un pi o di un progetto.
non me lo fa fare perchè mi dà errore, e non capisco perchè!
questo è il codice esattamente com'è nel mio progetto:
codice:
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 pi (
ID_PI INTEGER NOT NULL
PRIMARY KEY GENERATED ALWAYS AS IDENTITY
(START WITH 1, INCREMENT BY 1),
NOME VARCHAR(30),
COORDINATE VARCHAR(30)
);
CREATE table relazionip (
ID_RELP INTEGER NOT NULL
PRIMARY KEY GENERATED ALWAYS AS IDENTITY
(START WITH 1, INCREMENT BY 1),
fk_idprog INTEGER,
fk_idpi INTEGER,
Foreign Key (fk_idprog) references PROGETTI(ID_PROG)
on delete cascade,
Foreign Key (fk_idpi) references PI(ID_PI)
ON DELETE CASCADE
);
se provo a fare DELETE FROM PI WHERE id_pi=12 mi dice
VIOLAZIONE DELLA RESTRIZIONE DI CHIAVE ESTERNA