我在这里为我正在开发的数据库编写一些约束,我想知道我是否可以执行以下操作:
ALTER TABLE Course
ADD CONSTRAINT cs_level
CHECK (clevel in ('P','I','II','III'))
……而不是这个:
ALTER TABLE Course
ADD CONSTRAINT cs_level
CHECK (clevel = 'P' OR clevel = 'I' OR clevel = 'II' OR clevel = 'III')
最佳答案
即使mysql强制了CHECK
约束,我仍然会创建一个COURSE_LEVEL
表:COURSE_LEVEL_CODE
,varchar(3),主键COURSE_LEVEL_DESCRIPTION
,可变字符(120)
…并在COURSE
表的clevel
列上创建外键约束:
ALTER TABLE COURSE
ADD FOREIGN KEY (clevel) REFERENCES COURSE_LEVEL(COURSE_LEVEL_CODE)