gpt4 book ai didi

MySQL: `REFERENCES` 与 `FOREIGN KEY` + `REFERENCES`

转载 作者:搜寻专家 更新时间:2023-10-30 23:42:58 27 4
gpt4 key购买 nike

MySQL: REFERENCES vs FOREIGN KEY + REFERENCES

我认为 REFERENCES 是更冗长的 FOREIGN KEY REFERENCES 语法的某种速记语法。

但是,下表的行为并不像它受到外键约束的约束。我可以使用不在 Courses 关系中的 courseid 轻松添加一个元组。

有人可以澄清这个问题吗?

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)
);

最佳答案

你用的是什么版本的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”部分。我认为您确实需要完整的声明,例如:

FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE CASCADE

关于MySQL: `REFERENCES` 与 `FOREIGN KEY` + `REFERENCES`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32800727/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com