mysql - 具有两个外键约束的表
问题描述
当我尝试创建包含 2 个外键的表时,我收到 ERROR 1064 (42000)。它说我的语法错误,但我找不到任何错误。我正在使用 MySQL 8.0 版
我只尝试了一个约束/没有第二个约束并且它有效。但是对于他们两个,我都遇到了错误。
这有效:
CREATE TABLE IF NOT EXISTS Comment (
id INT NOT NULL AUTO_INCREMENT,
content VARCHAR(15) NOT NULL,
date_posted DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
user_id INT NOT NULL,
post_id INT NOT NULL,
PRIMARY KEY (id),
CONSTRAINT `fk_User_Comment`
FOREIGN KEY (user_id)
REFERENCES User (id)
ON DELETE NO ACTION
ON UPDATE NO ACTION);
这不会:
CREATE TABLE IF NOT EXISTS Comment (
id INT NOT NULL AUTO_INCREMENT,
content VARCHAR(15) NOT NULL,
date_posted DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
user_id INT NOT NULL,
post_id INT NOT NULL,
PRIMARY KEY (id),
CONSTRAINT `fk_User_Comment`
FOREIGN KEY (user_id)
REFERENCES User (id)
ON DELETE NO ACTION
ON UPDATE NO ACTION),
CONSTRAINT `fk_Post_Comment`
FOREIGN KEY (post_id)
REFERENCES Post (id)
ON DELETE NO ACTION
ON UPDATE NO ACTION);
解决方案
是的,我多了一个括号。感谢你们。
CREATE TABLE IF NOT EXISTS Comment (
id INT NOT NULL AUTO_INCREMENT,
content VARCHAR(15) NOT NULL,
date_posted DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
user_id INT NOT NULL,
post_id INT NOT NULL,
PRIMARY KEY (id),
CONSTRAINT `fk_User_Comment`
FOREIGN KEY (user_id)
REFERENCES User (id)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Post_Comment`
FOREIGN KEY (post_id)
REFERENCES Post (id)
ON DELETE NO ACTION
ON UPDATE NO ACTION);
推荐阅读
- ruby - 创建了一个动态类和函数生成器,但 method_body 部分不起作用
- numpy - numpy.randomState 中使用了哪种 Mersenne Twister?
- javascript - 一次打印递归所有节点获取操作信息
- plot - 删除 Plotly 中图表之间的差距
- c# - 为什么 Math.Atan2(-0.0, x) 返回与 Math.Atan2(0.0, x) 不同的结果?
- pandas - 如何使用 np.where 将我的变量转换为另一个变量
- mongodb - 如何从 MongoDB 的集群中删除特定的分片?
- javascript - 无法使用 Webpack 定义未定义的属性“编译”
- javascript - 如何将 D3.js GeoJSON 和 CSV 加载到 CodeIgniter
- python - 为什么numpy数组不会将float更改为int?