Ограничение FOREIGN KEY поможет Mysql

0

Я просматриваю mysql, и я работаю над составлением внешних ключей при создании таблиц. Однако, когда я создаю внешний ключ, я получаю синтаксическую ошибку.

CREATE TABLE IF NOT EXISTS staff (
    staff_id INT(5) NOT NULL,
    staff_first_name VARCHAR(20) NOT NULL,
    staff_last_name VARCHAR(20) NOT NULL,
    staff_phone_number VARCHAR(15) NOT NULL,
    staff_email_address VARCHAR(30) NOT NULL,
    CONSTRAINT staff_id_pk PRIMARY KEY (staff_id)
    CONSTRAINT staff_id_fk FOREIGN KEY (staff_id)
    REFERENCES computer_staff (staff_id)
);

Может ли кто-нибудь увидеть, что я сделал неправильно здесь?


РЕДАКТИРОВАТЬ:

Ошибка, с которой я получаю отчеты:

19:35:55 CONSTRAINT staff_id_fk FOREIGN KEY (staff_id), ССЫЛКИ computer_staff (staff_id)) Код ошибки: 1064. У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с CONSTRAINT staff_id_fk FOREIGN KEY (staff_id), ССЫЛКИ computer_staff (staff_ 'в строке 1 0.00025 sec

UPDATE: Код ошибки: 1215. Невозможно добавить ограничение внешнего ключа 0.110 сек.

Как разрешить код ошибки 1215?

  • 0
    Можете ли вы поделиться этой синтаксической ошибкой, чтобы сделать жизнь проще :)
  • 0
    19:35:55 CONSTRAINT staff_id_fk FOREIGN KEY (staff_id), REFERENCES computer_staff (staff_id)) Код ошибки: 1064. У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса, который можно использовать рядом с 'CONSTRAINT staff_id_fk FOREIGN KEY (staff_id), ССЫЛКИ computer_staff (staff_' в строке 1 0,00025 сек
Показать ещё 2 комментария
Теги:
mysql-error-1064

2 ответа

2

Попробуйте этот код

CREATE TABLE IF NOT EXISTS staff (
staff_id INT(5) NOT NULL,
staff_first_name VARCHAR(20) NOT NULL,
staff_last_name VARCHAR(20) NOT NULL,
staff_phone_number VARCHAR(15) NOT NULL,
staff_email_address VARCHAR(30) NOT NULL,
Foregn_Key int,
CONSTRAINT staff_id_pk PRIMARY KEY (staff_id),
CONSTRAINT staff_id_fk FOREIGN KEY (Foregn_Key)
REFERENCES computer_staff (Foregn_Key)
);
  • 0
    Спасибо isfaq, но я все еще получаю Код ошибки: 1215. Невозможно добавить ограничение внешнего ключа 0.110 сек.
  • 0
    ок, сэр, добавьте еще один столбец и сделайте его первичным ключом.
Показать ещё 3 комментария
1

Вам не хватает запятой:

CREATE TABLE IF NOT EXISTS staff (
    staff_id INT(5) NOT NULL,
    staff_first_name VARCHAR(20) NOT NULL,
    staff_last_name VARCHAR(20) NOT NULL,
    staff_phone_number VARCHAR(15) NOT NULL,
    staff_email_address VARCHAR(30) NOT NULL,
    CONSTRAINT staff_id_pk PRIMARY KEY (staff_id), -- here
    CONSTRAINT staff_id_fk FOREIGN KEY (staff_id)
    REFERENCES computer_staff (staff_id)
);
  • 0
    Спасибо, но после вставки пропущенной запятой я получаю эту ошибку: 19:48:38 СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ персонал (staff_id INT (5) NOT NULL, staff_first_name VARCHAR (20) NOT NULL, staff_last_name VARCHAR (20) NOT NULL, staff_phone_number VARCHAR (15) NOT NULL, staff_email_address VARCHAR (30) NOT NULL, CONSTRAINT staff_id_pk ПЕРВИЧНЫЙ КЛЮЧ (staff_id), CONSTRAINT staff_id_fk КЛЮЧ FOREIGN (staff_id) REFERENCES computer_staff (staff_id)) код ошибки: ограничение внешнего ключа 10: 0.115 не может добавить внешнюю ключевую точку10: ограничение на добавление внешнего ключа 10: 0,15
  • 0
    @Ed_ убедитесь, что таблица computer_staff уже создана / присутствует в базе данных, прежде чем добавлять внешние ключи, ссылающиеся на эту таблицу
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню