我知道类似的问题以前也有人问过,但我似乎找不到适合这种特殊情况的解决方案。
我想在mariaDB表中插入多行数据,其中的数据必须是唯一的(不包括主键)。
示例表:
| 注册ID|类标识符|使用者ID|
| - -|- -|- -|
| 一个|一个|2个|
| 2个|一个|三个|
| 三个|一个|四个|
| 四个|2个|2个|
| 五个|2个|七个|
因此,如果我想插入一些行,我不想重复已经存在的内容。
一般的想法是这样的:
INSERT INTO `enrollments` (`enrollmentsID`, `classID`, `userID`)
VALUES (NULL,1,2),(NULL,1,3),(NULL,1,4),(NULL,1,5)
WHERE NOT EXISTS (
SELECT `enrollments`.`classID`, `enrollments`.`userID`
FROM `enrollments`)
在这里,用户ID 5将被插入,但用户ID 3和用户ID 4将被忽略。不幸的是,WHERE导致了问题...感谢您提供的任何帮助。
1条答案
按热度按时间o8x7eapl1#
正如P.Salmon在评论中提到的,两列上的UNIQUE索引很可能是您所需要的。索引需要在两列上,而不是每列都有
UNIQUE
索引。从那里你可以做
INSERT INGORE INTO
而不是INSERT INTO
,这将只插入唯一的条目。