2016-04-08 22 views
0

私は、この表を作成したいが、それはちょうど、このエラーで分岐さ:は#1005 - (エラー番号:150)テーブル「addfriend.updates」を作成できません

1005 - テーブルのjotechを作成できません。更新情報 '(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)); 
+0

「mysql'は 'sql-server'以外のものです。使用されていない製品にはタグを付けないでください。外部キー用のmysql構文についてgoogleを使用している場合は、あなたのfriendsステートメントを確認することができます。 – HoneyBadger

答えて

1

外部キー列(複数可)のデータ型は、正確カラム(複数可)は、参照のデータ型と一致しなければなりません。

問題はここにある:

への外部キー列参照することはできません
`user_id_fk` VARCHAR(45) 
       ^^^^^^^^^^^ 

`user_id` INT(11) 
      ^^^^^^^ 

updatesの外部キー列を定義する必要があります:

`user_id_fk` INT(11) 
       ^^^^^^^ 

外部キー制約を定義するためです。

+0

うまくいきました。 @ spencer7593。こんにちは! –