ho un problema con un database! Ho due tabelle
appelli
prenotati
e devo fare in modo che quando cambio (in appelli) la data di un appello questa deve essere modificata anche nelle righe corrispondenti di prenotati, o in caso di eliminazione di un appello devono essere cancellate anche le righe corispondenti in prenotati!!!
IL CODICE CHE HO SCRITTO è IL SEGUENTE MA NON FUNZIONA
CREATE TABLE auth_prof (
ID int(6) NOT NULL auto_increment,
prof char(100) NOT NULL,
passwd char(9) NOT NULL,
facolta char(25) NOT NULL,
materia char(150) NOT NULL,
anno int(1) NOT NULL,
PRIMARY KEY (ID)
);
CREATE TABLE auth_stud (
matricola int(9) NOT NULL,
nome char(100) NOT NULL,
cognome char(100) NOT NULL,
passwd char(9) NOT NULL,
facolta char(25) NOT NULL,
anno int(1) NOT NULL,
PRIMARY KEY (matricola)
);
CREATE TABLE appelli(
prof char(100) NOT NULL,
facolta char(25) NOT NULL,
anno int(1),
materia char(150) NOT NULL,
data datetime NOT NULL,
PRIMARY KEY (prof,materia,data),
foreign key(prof,materia,data) references prenotati(prof,materia,data)
on delete cascade
on update cascade
);
CREATE TABLE prenotati (
nome char(25) NOT NULL,
cognome char(25) NOT NULL,
matricola int(9) NOT NULL,
facolta char(25) NOT NULL,
materia char(150) NOT NULL
data datetime NOT NULL
prof char(100) NOT NULL
PRIMARY KEY (matricola,materia),
foreign key(prof,materia,data) references appelli(prof,materia,data)
on delete cascade
on update cascade
);
come posso fare?