MySQL:
REFERENCES
vsFOREIGN 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)
);
答案 0 :(得分:1)
您使用的是哪个版本的mysql?
运行此内容后会得到什么?
show create table Exam;
我得到的是:
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忽略了" REFERENCES" create table语句的一部分。我认为你确实需要完整的声明,如:
FOREIGN KEY(parent_id) REFERENCES parent(id) ON DELETE CASCADE