PDA

View Full Version : [MYSQL] On delete cascade


Alhazred
03-09-2008, 17:20
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ė:

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;

Nel momento in cui provo ad inserire una riga nella tabella conto appare questo messaggio d'errore:
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"?