#mysql
#mysql
Вопрос:
Я создал 2 таблицы employees в качестве родительской таблицы и departments в качестве дочерней таблицы, а в таблице departments employee_id создается внешний ключ, но если я попытаюсь сначала вставить данные в дочернюю таблицу без вставки записи в родительскую таблицу, тогда данные будут вставлены успешно, однако я хочу, чтобы появилась ошибка, потому что без идентификатора родительской таблицызапишите, что мы должны вставить дочерние данные, поскольку здесь мы поддерживаем ссылочные ограничения внешнего ключа
Запросы Mysql:
родительская таблица
CREATE TABLE employees
( employee_id numeric (20) not null,
employee_name varchar(75) not null,
supervisor_name varchar(75),
CONSTRAINT employee_pk PRIMARY KEY (employee_id)
);
Дочерняя таблица
CREATE TABLE departments
( department_id numeric (20) not null,
employee_id numeric (20) not null,
CONSTRAINT fk_employee
FOREIGN KEY (employee_id)
REFERENCES employee (employee_id)
);
Комментарии:
1. Это таблицы MyISAM? MyISAM не поддерживает и не применяет ограничения внешнего ключа. Вы должны использовать InnoDB.
2. @Bill Karwin Я использую InnoDB
Ответ №1:
Проблема в самом имени.Имя таблицы — employees, тогда как в части ссылок оно указано как employee . Здесь также должны быть сотрудники.
CREATE TABLE departments
( department_id numeric (20) not null,
employee_id numeric (20) not null,
CONSTRAINT fk_employee
FOREIGN KEY (employee_id)
REFERENCES employees (employee_id)
);
Комментарии:
1. спасибо, не могли бы вы рассказать мне, как увидеть это созданное постоянное имя с помощью запроса