我有SQL代码,如果我的表中不存在数据,我应该如何更改它以插入数据。谢谢你的回答:)
INSERT INTO stages_done(id_booked_proj, id_stage)
SELECT booked_proj.id, stages.id_st
FROM booked_proj, stages
WHERE booked_proj.name='home' AND stages.name_st= 'sm'"
答案 0 :(得分:0)
您可以使用INSERT IGNORE
,这样,如果行导致重复的密钥,则不会插入该行:
INSERT IGNORE INTO stages_done(id_booked_proj, id_stage)
SELECT booked_proj.id, stages.id_st
FROM booked_proj, stages
WHERE booked_proj.name='home' AND stages.name_st= 'sm'"
具有PRIMARY KEY或UNIQUE约束的列中的任何重复键都将被忽略。
如果您具有写入权限,则可以向表中添加约束,如下所示:
ALTER TABLE `stages_done` ADD UNIQUE `id_booked_proj_id_stage_index` (`id_booked_proj`, `id_stage`);
id_booked_proj_id_stage_index
可以是您选择的任何名称,只要它是唯一的。