I have some data:
id
parent_id
topic_id
1 < /td>
< /td>
1 < /td>
< /tr>
2 < /td>
1 < /td>
2 < /td>
1 < /td>
/> < /tr>
3 < /td>
< /td>
2 < /td>
< /tr>
4 < /td>
3 < /td>
< /td>
3 < /td>
/> < /tr>
< /tbody>
< /table> < /div>
parent_id имеет fk to id .
Я пытаюсь удалить данные с помощью TOMA_ID - Как вы видите, одна строка ссылается на другую строку, которая должна быть удалена. Но Иногда это терпит неудачу из -за нарушения FK. Это делает это довольно сложно воспроизвести эту ситуацию. < /P>
Как их удалить? Не хочу этого, я мог бы повредить данные < /li>
[*]...?
< /ul>
удалось воспроизвести это. SQL: < /p>
create table test (
id bigint auto_increment primary key,
parent_id bigint null ,
topic_id bigint,
foreign key (parent_id) references test(id)
) engine=innodb;
insert into test (id, parent_id, topic_id)
values
(1, null, 1),
(2, 1, 1),
(3, 2, 1),
(4, null, 2),
(5, 4, 2);
-- select * from test;
delete from test where topic_id=1;
-- [23000][1451] Cannot delete or update a parent row: a foreign key constraint fails (`mydb`.`test`, CONSTRAINT `test_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `test` (`id`))
Подробнее здесь: https://stackoverflow.com/questions/796 ... ce-to-self