Estoy tratando de crear uno a muchos relación usando una tabla. ¿Esto es posible?uno a muchos con una tabla
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);
Ahora cuando se borra el usuario con id = 1 el valor de created_by de forma automática cambiar a NULL como lo esperaba.
Pero cuando cambio id del usuario con id = 1 me sale este error
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)
¿Cómo puedo solucionar este problema? Afirme esta actualización Quiero que la columna created_by se cambie en cascada.
¿Dónde se necesita un concepto? - Sólo curioso. – Lion
No lo necesito en absoluto. Tengo curiosidad. – mecio
Tim Gee une un hilo del foro con la respuesta exacta (es un mecanismo simple para evitar bucles infinitos), asegúrese de leer [el seguimiento] (http://forums.mysql.com/read.php?136,391782,398085 # msg-398085). –