Sto provando ad usare la clausola "on delete cascade" su due tabelle in modo da manterere i dati consistenti nel caso venisse cancellata una riga in una delle due tabelle.
La creazione delle tabelle l'ho fatta così:
Nel momento in cui provo ad inserire una riga nella tabella conto appare questo messaggio d'errore:codice:create table Conto ( numeroConto int not null auto_increment, saldo float(2) default 0, primary key (numeroConto) ) engine=innodb; create table Possiede ( Cliente varchar(10) primary key, Conto int not null auto_increment, Key (conto) ) engine=innodb; alter table conto add constraint possiede_delete foreign key (numeroconto) references possiede(conto) on delete cascade; alter table possiede add constraint conto_delete foreign key (conto) references conto(numeroconto) on delete cascade;
Cannot add or update a child row: a foreign key constraint fails (`ricettelastminute`.`conto`, CONSTRAINT `possiede_delete` FOREIGN KEY (`numeroConto`) REFERENCES `possiede` (`Conto`) ON DELETE CASCADE)
Cosa analoga se l'inserimento lo provo nella tabella possiede, cambia solo l'alter table che mi visualizza dopo "Cannot add or update a child row: a foreign key constraint fails".
Da cosa dipende? come faccio a far funzionare "on delete cascade"?

Rispondi quotando