我有一个表user_interests,其中包含id(AUTO_INC),user_id,user_interest列。 我想要一种简单的方法将数据插入user_id和user_interest而不需要重复的条目。
E.g。如果我之前有这样的桌子。
+------------------------------+
| ID | user_id | user_interest |
+------------------------------+
| 1 | 2 | Music |
| 2 | 2 | Swimming |
+------------------------------+
如果我现在insert into table (user_id, user_interest) values ((2, Dance),(2, Swimming)
,我只需要插入(2,舞蹈)条目 - 不是(2,游泳),因为(2,游泳)已经存在于表格中。
我看过upsert
命令,并尝试创建如下命令,但它不起作用。
INSERT INTO `user_interests`( `user_id`,`interest` )
VALUES ("2","Music")
WHERE (SELECT COUNT(`interest`) FROM `user_interests`
WHERE `interest` = "Music" AND `user_id` = "2"
Having COUNT(`interest`) <=0 )
答案 0 :(得分:0)
使用NOT EXISTS方法:
INSERT INTO your_table (user_id ,user_interest )
SELECT @userId , @UserIntreset
WHERE NOT EXISTS(SELECT 1 FROM your_table user_id = @userid AND user_interest
= @userinterest )
或在表格中创建唯一约束
ALTER TABLE your_table
ADD CONSTRAINT Constraint_Name UNIQUE (Column_Name1,Column_Name2)
答案 1 :(得分:-1)
修改表格定义即您可以向(user_id | user_interest)
添加唯一约束