簡體   English   中英

無法在mysql表中創建約束

[英]unable to create constraint in mysql table

我有以下表格:

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已被截斷,因此沒有現有記錄可以禁用放置約束。

這是一個重復的鍵錯誤。 你之前有一張同名的桌子嗎? 如果是這樣,請檢查InnoDB內部數據字典。 如果沒有,請檢查是否有另一個具有相同名稱的約束。 約束名稱應該是唯一的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM