我想要创建这个表,但是它只是被这个错误分开了:
1005 -无法创建表“jotech.updates”(errno: 150)
我的一个朋友说是因为外键约束没有正确形成。但他不知道怎么解决。
请帮帮忙。
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));
CREATE TABLE `friends` (
`friend_one` INT(11) ,
`friend_two` INT(11) ,
`status` ENUM('0','1','2') DEFAULT '0',
PRIMARY KEY (`friend_one`,`friend_two`),
FOREIGN KEY (friend_one) REFERENCES users(user_id),
FOREIGN KEY (friend_two) REFERENCES users(user_id));发布于 2016-04-08 14:30:08
外键列的数据类型必须与它引用的列的数据类型完全匹配。
问题在于:
`user_id_fk` VARCHAR(45)
^^^^^^^^^^^它不能是外键列引用:
`user_id` INT(11)
^^^^^^^需要定义updates中的外键列:
`user_id_fk` INT(11)
^^^^^^^以定义外键约束。
https://stackoverflow.com/questions/36502028
复制相似问题