我有一个配色方案表,用户可以在我的网站上自定义和切换。例如,"暗"方案和"亮"方案。我想要一种方法来更新这个表,首先检查哪个用户有哪个方案,这样我就不会添加两次方案/用户组合。
| userid | schemename | background | text |
---------------------------------------------------
| 1 | dark | black | white |
| 1 | light | white | grey |
| 2 | dark | black | white |
| 2 | light | white | grey |
etc.
我有一个更新脚本,可以使这些方案与主方案保持同步,因此,如果用户碰巧删除了一个方案,他们可以将其方案与主同步。我需要一个insert语句,它只会在表中不存在userid/schemename组合的情况下添加到scheme中。我可以使用INSERT IGNORE或类似的东西吗?
您可以使用不在子句
insert into your_destination_table (user_id, schemename, background, text)
select user_id, schemename, background, text
from your_source_table
where (user_id, schemename) not in
(select user_id, schemename, background, text
from your_destination_table);