gpt4 book ai didi

php - 为什么我的外键不能在 MySQL 中创建?

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

我已经尝试了许多不同的方法来创建带有外键的表并尝试插入到 phpMyAdmin 中。然而,它并没有像我预期的那样工作。

这是我到目前为止的内容:

CREATE TABLE user (
user_id BIGINT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
user_name VARCHAR(50) NOT NULL,
user_password VARCHAR(50) NOT NULL);

这工作得很好。但是,如果我尝试添加一个带有外键的表,它会拒绝创建:

CREATE TABLE article (
article_id INT(20) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
article_title VARCHAR(100) NOT NULL,
article_content VARCHAR(1000) NOT NULL,
user_id INT(10) NOT NULL,
FOREIGN KEY (user_id) REFERENCES user (user_id));

这不会按预期工作并且不会将表添加到 MySQL 数据库中。我收到此错误:

Cannot add foreign key constraint

我该如何解决?

最佳答案

我们在评论中发现,如果这样定义主键:

user_id BIGINT(10) UNSIGNED

那么像这样的外键将不起作用,因为它需要在签名上匹配(我认为类型也是如此):

user_id INT(10) NOT NULL

这很好用:

user_id BIGINT(10) UNSIGNED NOT NULL

这是一个 Fiddle以证明它的工作。

关于php - 为什么我的外键不能在 MySQL 中创建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29546481/

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