MySQL Код ошибки 3813: «Ограничение проверки столбца», невозможно создать таблицу - PullRequest
0 голосов
/ 10 февраля 2020

Я пытаюсь создать свою первую базу данных в MySQL и сталкиваюсь с небольшой проблемой, при попытке запустить следующую таблицу я получаю следующую ошибку:

Код ошибки 3813: Ограничение проверки столбца 'section_ck_1' ссылается на другой столбец.

Вот таблица, которую я пытаюсь написать

create table section (
course_id varchar(8),
sec_id varchar(8),
semester varchar(6) check (semester in (`Fall`, `Winter`, `Spring`, `Summer`)),
year numeric(4,0) check (year > 1701 and year < 2100),
building varchar(15),
room_number varchar(7),
time_slot_id varchar(4),
primary key (course_id, sec_id, semester, year),
foreign key(course_id) references course(course_id) on delete cascade,
foreign key (building, room_number) references classroom on delete set null);

Я считаю, что это что-то не так с моим «семестром» или строки 'year', хотя я не уверен, в чем проблема, или как бы я go решил ее.

1 Ответ

0 голосов
/ 10 февраля 2020
semester varchar(6) check (semester in (`Fall`, `Winter`, `Spring`, `Summer`)),

Я думаю, вы хотели использовать одинарные кавычки, чтобы сделать строковые литералы четырех сезонов. Должно быть так:

semester varchar(6) check (semester in ('Fall', 'Winter', 'Spring', 'Summer')),

Строковые литералы заключаются в одинарные кавычки.

Обратные кавычки предназначены для разграничения идентификаторов, таких как имена таблиц и столбцов. Используя обратные кавычки так, как вы это сделали, создается впечатление, что вы намеревались semester иметь то же значение, что и один из четырех других столбцов с именами Fall, Winter, Spring, Summer.

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