我有以下表格:無法在MySQL表中創建約束
node_sharing | CREATE TABLE `node_sharing` (
`user_id` int(11) NOT NULL,
`node_id` int(11) NOT NULL,
PRIMARY KEY (`user_id`,`node_id`),
KEY `fk_user_id_idx` (`user_id`),
KEY `fk_node_id_idx` (`node_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
和
users | CREATE TABLE `users` (
`id` int(11) NOT NULL,
`has_ard_access` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
我想創建這樣的一個約束外鍵:
ALTER TABLE `node_sharing`
ADD CONSTRAINT `fk_user_id`
FOREIGN KEY (`user_id`)
REFERENCES `users` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
和MySQL返回以下錯誤:
ERROR 1005 (HY000): Can't create table 'MY_TABLE_NAME.#sql-4d0_218' (errno: 121)
這裏有什麼問題?
PS node_sharing
已被截斷,因此沒有現有的記錄可以禁用放置約束。
嗨,我試着執行你的3條語句,沒關係。你有哪個版本的MySql? –
@JoeTaras它是'mysql Ver 14.14 Distrib 5.5.32,用於debian-linux-gnu(x86_64)使用readline 6.2 ' – ducin