2013-11-18 3 views
0

! Коде MySQL] CLICKпростой внешний ключ в тот же атрибут Дно и Dnumber

я хочу знать, почему я не могу добавить ограничение внешнего ключа. Dno и Dnumber имеют одинаковый атрибут, но результат имеет проблему. Невозможно добавить ограничение внешнего ключа.

Создать таблицу employee04 (Dno int not null default 1,);

создать стол department04 (Dnumber int not null);

alter table employee04 добавить ограничение EMPFK внешний ключ (Dno) ссылки department04 (Dnumber);

+0

Вы можете вставить код здесь. Я думаю, что никто здесь не захочет нажимать на это ** 1 **! –

+0

извините, я опубликовал основной код –

ответ

0

Оба столбца должны иметь одинаковое значение по умолчанию. В качестве сотрудника по умолчанию 1, Dnumber в департаменте имеет значение по умолчанию null.

ALTER TABLE employee04 
ALTER Dno SET DEFAULT NULL 

Хотя SET DEFAULT допускается на сервере MySQL, он отвергается как недействительным по InnoDB. Операторы CREATE TABLE и ALTER TABLE с использованием этого предложения не разрешены для таблиц InnoDB.

Doc

Может попробовать ON DELETE SET NULL

+0

, даже у меня такое же значение по умолчанию, я все еще не могу быть успешным –

+0

У вас есть данные в этих таблицах? – Mihai

+0

нет, мне нужно сначала добавить таблицы данных? –

Смежные вопросы