简体   繁体   中英

unable to create constraint in mysql table

I've got following tables:

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

and

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

I would like to create following foreign key with a constraint:

ALTER TABLE `node_sharing`
  ADD CONSTRAINT `fk_user_id`
  FOREIGN KEY (`user_id` )
  REFERENCES `users` (`id` )
  ON DELETE NO ACTION
  ON UPDATE NO ACTION;

and MySQL returns the following error:

ERROR 1005 (HY000): Can't create table 'MY_TABLE_NAME.#sql-4d0_218' (errno: 121)

What is wrong here?

PS node_sharing has been truncated, so there are no existing records that could disable putting the constraint on.

It is a duplicate key error. Did you have a table with same name before? If so, check InnoDB internal data dictionary. If not, check if you have another constraint with same name. Constraint names should be unique.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM