我有两个表,我只想保持它们之间的关系,即用户和组合,如下所示
CREATE TABLE `shocase`.`combineScorers` (
`combineId` INT NOT NULL,
`userId` INT NOT NULL,
`createdAt` DATETIME NOT NULL,
`updatedAt` DATETIME NOT NULL,
PRIMARY KEY (`combineId`, `userId`),
INDEX `combineId_idx` (`combineId` ASC),
INDEX `userId_idx` (`userId` ASC),
CONSTRAINT `fk_combines_combineId`
FOREIGN KEY (`combineId`)
REFERENCES `shocase`.`combines` (`combineId`)
ON DELETE NO ACTION
ON UPDATE CASCADE,
CONSTRAINT `fk_users_userId`
FOREIGN KEY (`userId`)
REFERENCES `shocase`.`users` (`userId`)
ON DELETE NO ACTION
ON UPDATE CASCADE);
bundleId和userId没什么特别的。两者都是各自表的外键,我正在尝试将组合主键创建为(combineId, userId)
运行时出现以下错误
错误代码:1022。表'combineScorers'中的重复键
答案 0 :(得分:1)
您可能在数据库中使用名称为combineId
或userId
的约束。它们对于整个数据库应该是唯一的。如果是这样,请重命名它们。
搜索当前在哪里使用约束:
SELECT `TABLE_SCHEMA`, `TABLE_NAME`
FROM `information_schema`.`KEY_COLUMN_USAGE`
WHERE `CONSTRAINT_NAME` IN ('combineId', 'userId');