mysql 3813错误代码:“列检查约束”,无法创建表

gmol1639  于 2023-04-10  发布在  Mysql
关注(0)|答案(1)|浏览(701)

我试图在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);

我相信这是我的'学期'或'年'行不正确的东西,虽然我不知道问题是什么,或者我将如何去修复它。

o4tp2gmn

o4tp2gmn1#

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

我想你的意思是使用单引号来使四季字符串字面量。它应该是这样的:

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

字符串字面值属于单引号。
反引号用于分隔标识符,如表名和列名。使用反引号的方式使semester看起来像是您希望FallWinterSpringSummer具有与其他四个列中的一个相同的值。

相关问题