2015-09-06 5 views
0

Когда я пытаюсь добавить ограничение внешнего ключа на курс таблицы MySQL сказал:mysql- не может добавить ограничение внешнего ключа

1215 - Невозможно добавить ограничение внешнего ключа

create table course 
(course_id  varchar(8), 
title   varchar(50), 
dept_name  varchar(20), 
credits  numeric(2,0) check (credits > 0), 
primary key (course_id), 
foreign key (dept_name) references department 
    on delete set null 
); 

DDL заявление, которое я использовал для создания отдела таблиц:

create table department 
(dept_name  varchar(20), 
building  varchar(15), 
budget    numeric(12,2) check (budget > 0), 
primary key (dept_name) 
); 

Я использовал set foreign_key_checks=0 перед созданием любой таблицы. LATEST FOREIGN KEY ERROR говорит:

Syntax error close to: 

на удаление множества нулевой

ответ

1

Try включая имя столбца в определении внешнего ключа:

foreign key (dept_name) references department(dept_name) 

Here является SQL Скрипки.

Обратите внимание, что ограничение check разобрано, но не принудительно. MySQL принимает синтаксис, но ничего не делает.

+0

, в котором rdbms, операторы sql бы сработали? – rick112358

+0

Я не думаю, что какая-либо база данных будет использовать внешний ключ. Большинство баз данных поддерживают «проверки» как синтаксически, так и принудительно. –

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