MySQL:
REFERENCES对FOREIGN KEY+REFERENCES
我认为REFERENCES是更冗长的FOREIGN KEY REFERENCES语法的某种简写语法。
但是,下面的表并不像受外键约束一样。我可以轻松地使用courseid添加一个元组,而不是在Courses关系中。
有人能澄清这个问题吗?
CREATE TABLE `Exam`(
`courseid` VARCHAR(20) REFERENCES `Courses`(courseid) ON DELETE RESTRICT ON UPDATE CASCADE,
`examno` INT(1) DEFAULT 1 CHECK(`examno` >= 1),
`weight` FLOAT(5) DEFAULT 1 CHECK(`weight` > 0),
PRIMARY KEY(courseId, examNo)
);发布于 2015-09-26 19:25:00
您使用的是什么版本的mysql?
当你运行这个的时候你能得到什么?
显示创建表格考试;
我得到的是:
CREATE TABLE `Exam` (
`courseid` varchar(20) NOT NULL DEFAULT '',
`examno` int(1) NOT NULL DEFAULT '1',
`weight` float DEFAULT '1',
PRIMARY KEY (`courseid`,`examno`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;这意味着MySQL忽略了create语句的“引用”部分。我认为你确实需要完整的陈述,比如:
删除级联上的外键(parent_id)引用父(Id)
https://stackoverflow.com/questions/32800727
复制相似问题