我想创建这个表,但它只是因为这个错误而拆分:
我的一位朋友说是因为没有正确形成外键约束。但他不知道如何解决它。
请帮忙。
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));
答案 0 :(得分:1)
外键列的数据类型必须与完全匹配它引用的列的数据类型。
问题在于:
`user_id_fk` VARCHAR(45)
^^^^^^^^^^^
这不能是外键列引用:
`user_id` INT(11)
^^^^^^^
需要定义updates
中的外键列:
`user_id_fk` INT(11)
^^^^^^^
为了定义外键约束。