insert语句的主键冲突问题

jeeper 2005-09-21 05:23:38
insert into table_1(id_1,id_2) select id_1,id_2 from table_2
其中id_1,id_2是table_1的主键,该sql执行时可能发生table_1的主键冲突,我想遇到主键冲突就跳过,不知应该如何做?
...全文
613 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
aidingy 2005-09-30
  • 打赏
  • 举报
回复
用replace 吧.有重复的相当于update,无重复的相当于insert
zgld 2005-09-23
  • 打赏
  • 举报
回复
楼上正解
loveflea 2005-09-22
  • 打赏
  • 举报
回复
insert ignore into table_1(id_1,id_2) select id_1,id_2 from table_2
rardge 2005-09-22
  • 打赏
  • 举报
回复
你说是两个主键,我不是很明白什么意思,不知道是组合在一起成为一个主键还是说分别都是看作主键,所以我写的这个语句你作为参考。想法就是直接选择table_1表中没有的数据来插入。
insert into table_1 (id_1) select table_2.id_1 from table_2 left join table_1 on table_2.id_1 = table_1.id_1 where table_1.id_1 is null;
ckc 2005-09-22
  • 打赏
  • 举报
回复
直接执行好了,反正冲突的也无法插入
jeeper 2005-09-21
  • 打赏
  • 举报
回复
先搜索的话,要分成多句执行,效率会打折扣:(
believefym 2005-09-21
  • 打赏
  • 举报
回复
先搜索一下再insert

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧