мой sql рекурсивный каскад обновления отношений - PullRequest
0 голосов
/ 12 ноября 2010
create table employee(emp_id int primary key ,emp_name char(9),
spouse_id int,foreign key(spouse_id)references employee (emp_id)
on delete cascade set null on update cascade);

привет, друзья

, когда я удаляю данные, это влияет на связанные данные.но когда я пытался обновить его, он дает ошибку не может изменить родительские данные.Пожалуйста, помогите мне найти решение.

1 Ответ

1 голос
/ 12 ноября 2010

Снять каскад

on delete set null 

но в отношении редактирования .. в моем примере это работает нормально ..

Может быть, это поможет вам из справки Mysql:

Отклонение от стандартов SQL: если включено ОБНОВЛЕНИЕ КАСКАДА или ОБНОВЛЕНИЯ УСТАНОВЛЕНО НУЛЬ рекурсивно обновлять эту же таблицу ранее обновлялся во время Каскад, он действует как ОГРАНИЧЕНИЕ. это означает, что вы не можете использовать Самостоятельная ссылка на ОБНОВЛЕНИЕ КАСКАДА или ON UPDATE SET NULL операции. Это чтобы предотвратить бесконечные петли в результате из каскадных обновлений. самоссылка ON DELETE SET NULL, с другой стороны, возможно, как есть Самостоятельная ссылка на УДАЛЕННЫЙ КАСКАД. Каскадные операции не могут быть вложенными глубиной более 15 уровней.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...