我尝试创建链接到两个表的表。
链接表:
CREATE TABLE `cartsitems` (
`id` INT NOT NULL AUTO_INCREMENT,
`cart_id` INT NOT NULL,
`product_id` INT NOT NULL,
`price` DOUBLE(6,2) NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (`cart_id`) REFERENCES `carts`(`id`),
FOREIGN KEY (`product_id`) REFERENCES `products`(`id`)
)
产品表:
CREATE TABLE `products` (
`id` INT AUTO_INCREMENT,
`category_id` INT,
`description` VARCHAR(255),
`price` DOUBLE(6,2),
PRIMARY KEY (`id`),
FOREIGN KEY (`id`) REFERENCES `categories`(`id`)
)
购物车表:
CREATE TABLE `carts` (
`id` INT NOT NULL AUTO_INCREMENT,
`users_id` INT NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (`users_id`) REFERENCES `users`(`id`)
)
我搜索并找到了这个答案:MySQL Cannot Add Foreign Key Constraint
我检查引擎是否相同(因为我没有设置其他内容),还有集合
类型相同(都是int)
及其唯一性(主键)
有什么问题吗?
最佳答案
您在产品表中缺少 id 字段。
CREATE TABLE `products` (
`id` INT NOT NULL AUTO_INCREMENT,
`category_id` INT,
`description` VARCHAR(255),
`price` DOUBLE(6,2),
PRIMARY KEY (`id`),
FOREIGN KEY (`id`) REFERENCES `categories`(`id`)
);
关于MYSQL: "Cannot add foreign key constraint",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41473090/