Здравствуйте.
Помогите, пожалуйста, разобраться, как работают связи в таблицах.
Имею две таблицы. Одна из таблиц имеет FK, он указывает на атрибут другой таблицы.
Хочу: чтобы при обновлении записи в родительской таблицы запись обновлялась в дочерней, а при удалении записи из родительской таблицы - с дочерней ничего не происходило.
делаю настройки FK в дочерней таблице: ON UPDATE: cascade, ON DELETE: no action.
Если в дочерней таблице есть записи, которые ссылаются на записи в родительской таблице, я пытаюсь удалить кортеж в родительской таблице, то происходит ошибка:
CODE ( htmlphp):
скопировать код в буфер обмена
SQLSTATE [23000 ]: Integrity constraint violation : 1451 Cannot delete or update a parent row : a foreign key constraint fails (`base` .`table2` , CONSTRAINT `table2_ibfk_2` FOREIGN KEY (`w_id` ) REFERENCES `table1` (`id` ) ON UPDATE CASCADE )The SQL being executed was: DELETE FROM `table1` WHERE `id`=9
Видимо, я чего-то не понимаю.
p.s. таблицы innodb.(Отредактировано автором: 03 Ноября, 2015 - 21:03:57)
|