Sto provando a creare una relazione uno a molti usando una tabella. È possibile?Uno a molti con un tavolo
create table user(id int primary key auto_increment not null,
created_by int default null
)ENGINE=INNODB;
alter table user add foreign key (created_by) references user(id) ON DELETE SET NULL ON UPDATE CASCADE;
insert into user (id) VALUES(1);
insert into user (id, created_by) VALUES (2,1);
Ora quando elimino utente con id = 1 il valore di created_by automaticamente passare a NULL come mi aspettavo.
Ma quando cambio id dell'utente con id = 1 ottengo questo errore
mysql> update user set id=2 where id=1;
ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`jrt`.`user`, CONSTRAINT `user_ibfk_1` FOREIGN KEY (`created_by`) REFERENCES `user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE)
Come posso risolvere questo problema? Affter questo aggiornamento Voglio che la colonna created_by sia modificata in cascata.
Dove hai bisogno di un tale concetto? - solo curioso. – Lion
Non ne ho affatto bisogno. Sono solo curioso. – mecio
Tim Gee collega un thread del forum con la risposta esatta (è un meccanismo semplice per prevenire loop infiniti), assicurati di leggere [il followup] (http://forums.mysql.com/read.php?136,391782,398085 # msg-398.085). –