【问题标题】:#1215 - Cannot add foreign key constraint in my sql tables#1215 - 无法在我的 sql 表中添加外键约束
【发布时间】:2015-10-28 18:34:06
【问题描述】:

我有 3 个表,其中 user_id 在名为 users 的表和另一个名为 updates 的表中定义为主键 user_id 我声明了对 user_id 的外键引用,这是我的用户表:

 CREATE TABLE `users` (
`user_id` INT(11) NOT NULL AUTO_INCREMENT ,
`username` VARCHAR(45) ,
`password` VARCHAR(100) ,
`email` VARCHAR(45) ,
`friend_count` INT(11) ,
`profile_pic` VARCHAR(150),
PRIMARY KEY (`user_id`));

我的更新表是:

CREATE TABLE `updates` (
`update_id` INT(11) AUTO_INCREMENT ,
`update` VARCHAR(45),
`user_id_fk` VARCHAR(45),
`created` INT(11) ,
`ip` VARCHAR(45),
PRIMARY KEY (`update_id`),
FOREIGN KEY (user_id_fk) REFERENCES users(user_id));

在添加外键时出现错误提示:

#1215 - 无法添加外键约束

所以帮我解决这个问题?

【问题讨论】:

  • 两列的类型和大小必须相同,在你的情况下你有 INT 和 VARCHAR

标签: mysql foreign-keys


【解决方案1】:

您应该拥有与updates.user_id_fk 相同类型和长度的user_id

CREATE TABLE `updates` (
`update_id` INT(11) AUTO_INCREMENT ,
`update` VARCHAR(45),
`user_id_fk` INT(11),
`created` INT(11) ,
`ip` VARCHAR(45),
PRIMARY KEY (`update_id`),
FOREIGN KEY (user_id_fk) REFERENCES users(user_id));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-16
    • 2015-01-24
    • 1970-01-01
    • 2015-02-04
    • 2016-05-15
    • 2017-09-06
    相关资源
    最近更新 更多