mysql - 使用外键创建表时出错

标签 mysql

我第一次建模了一个非常简单的数据库并尝试插入查询:

CREATE TABLE `product` (
`pid` varchar(255) NOT NULL,
`mfr` varchar(255) NULL,
`pnum` varchar(255) NOT NULL,
`ssku` varchar(255) NULL,
PRIMARY KEY (`pid`)
);

CREATE TABLE `detail` (
`pid` varchar(255) NOT NULL,
`sdesc` varchar(255) NULL,
`supplier` varchar(255) NULL,
PRIMARY KEY (`pid`)
);


CREATE TABLE `images` (
`pid` varchar(255) NOT NULL,
`url` varchar(255) NULL,
`alt` varchar(255) NULL,
`position` varchar(255) NULL,
PRIMARY KEY (`pid`)
);

ALTER TABLE `detail` ADD CONSTRAINT `fk_detail` FOREIGN KEY (`pid`) REFERENCES `product` ();
ALTER TABLE `images` ADD CONSTRAINT `pid` FOREIGN KEY () REFERENCES `product` ();

...但我收到此错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') REFERENCES `product` ()' at line 1

我做错了什么?

最佳答案

您必须将列名传递给 REFERENCES 子句:

REFERENCES product(pid);

此外,您要在 images 约束上创建一个空白外键:

FOREIGN KEY () REFERENCES `product` ();

关于mysql - 使用外键创建表时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44200491/

相关文章:

mysql - 使用Hibernate在单个 session 中插入一对多关系表

php - 使用 cake3 php 获取搜索表单结果的 get 请求获取关联数据

php - 如何修复数组到字符串的转换 Bootstrap PHP?

php - 是否可以按找到的匹配项数量对与 REGEX 匹配的 SQL 查询进行排序?

php - cookie 中的数组,使用 pdo 查询访问

mysql - eventmachine 和 mysql2/em 不回调

php - 为每次提交创建一个新页面 - PHP 错误

mysql - 在 hibernate 中使用非主键属性(唯一)作为外键

java - 如何诊断野蝇10.1下降的原因

php - 这里我的 SQL 语法有什么问题?