2016-12-10 4 views
0

に外部キー制約を適用することができ -ない私は、以下のクエリを実行することができますし、user_idの列にはNULL値が結果に存在しないのmysql

select c.*,r.user_id from chat_group_users c left join roleuser r 
on c.user_id = r.user_id; 

しかし、私は外部キー制約やMySQLを適用することはできませんだけと言います

Error Code: 1215. Cannot add foreign key constraint 

コマンドは、私が書いた -

ALTER TABLE chat_group_users 
ADD CONSTRAINT fk_roleuser FOREIGN KEY (user_id) REFERENCES roleuser (user_id) 
ON DELETE cascade ON UPDATE cascade; 

テーブル構造を -

CREATE TABLE `roleuser` (
`User_ID` int(10) unsigned NOT NULL AUTO_INCREMENT, 
`UserNM` varchar(50) NOT NULL, 
`UserPS` varchar(150) NOT NULL, 
`r_username` varchar(50) DEFAULT NULL, 
`UGroup` varchar(5) NOT NULL DEFAULT 'Usar', 
`FirstName` varchar(45) NOT NULL, 
`LastName` varchar(45) NOT NULL, 
PRIMARY KEY (`User_ID`), 
UNIQUE KEY `Index_2` (`UserNM`), 
) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=latin1; 


CREATE TABLE `chat_group_users` (
`auto_id` int(11) NOT NULL AUTO_INCREMENT, 
`group_id` int(11) DEFAULT NULL, 
`user_id` int(10) DEFAULT NULL, 
`is_admin` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT NULL, 
PRIMARY KEY (`auto_id`), 
UNIQUE KEY `unique_user_group` (`user_id`,`group_id`), 
KEY `fc_group_id` (`group_id`), 
CONSTRAINT `fc_group_id` FOREIGN KEY (`group_id`) 
REFERENCES `chat_group`(`auto_id`) 
ON DELETE CASCADE ON UPDATE CASCADE 
)ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; 
+1

、関連するテーブルの構造を含みます。 –

+1

user_id列のデータ型が同じであることを確認してください。 –

+0

'User_ID'は大文字で' ADD CONSTRAINT fk_roleuser FOREIGN KEY(user_id)REFERENCES roleuser(user_id) 'にはありません。 – wildplasser

答えて

1

はchat_group_usersに符号なしを逃した -

`User_ID` int(10) unsigned NOT NULL AUTO_INCREMENT, ... 
関連する問題