executemany执行插入语句 如果其中一条数据重复那么其他数据还会插入吗

简欥 2018-04-20 12:15:01
如果不能插入的话只能execute逐条插入判断是否重复吗
...全文
1768 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2018-11-22
  • 打赏
  • 举报
回复
可以跟你的表的列加上 UNIQUE约束,插入时用 INSERT OR IGNORE INTO 表名 VALUES (......),可以避免出现重复,插入也不会终止

参考:https://blog.csdn.net/wlphlj/article/details/11978105
Kongdom12138 2018-05-07
  • 打赏
  • 举报
回复
引用 8 楼 neal114 的回复:
[quote=引用 2 楼 rui_love 的回复:] [quote=引用 1 楼 neal114 的回复:] 你的意思是批量插入的时候,如果插入过程中报错,是否还会继续进行吧,答案是否定的。如果再每个插入语句后面加个GO,插入报错之后,后面的语句会继续插入。
报错的话程序肯定停止了 我是说如果抓到异常并且pass的话后面的插入也不会执行吗[/quote] 如果是数据库执行,加GO是不停止的,会继续运行的。如果是程序的话,要看程序的异常处理机制,一般用continue会继续循环[/quote] 刚又重新审了一遍题,发现这个是python语法。。。楼主可以去python专区问一下。
Kongdom12138 2018-05-07
  • 打赏
  • 举报
回复
引用 2 楼 rui_love 的回复:
[quote=引用 1 楼 neal114 的回复:] 你的意思是批量插入的时候,如果插入过程中报错,是否还会继续进行吧,答案是否定的。如果再每个插入语句后面加个GO,插入报错之后,后面的语句会继续插入。
报错的话程序肯定停止了 我是说如果抓到异常并且pass的话后面的插入也不会执行吗[/quote] 如果是数据库执行,加GO是不停止的,会继续运行的。如果是程序的话,要看程序的异常处理机制,一般用continue会继续循环
xiaoxiangqing 2018-04-25
  • 打赏
  • 举报
回复
要看你设置的是不是出错就中断
简欥 2018-04-24
  • 打赏
  • 举报
回复
引用 5 楼 zengertao 的回复:
[quote=引用 4 楼 rui_love 的回复:] [quote=引用 3 楼 zengertao 的回复:] 批量插入前,为什么不对插入结果集事前做一步异常验证,保证插入动作100%顺利进行?
可以详细一点吗[/quote] 比如你现在有100条未处理新增数据,之前的错法你是直接insert进表,然后发现其中第50条数据主键冲突,导致SQL报错之后的51~100条也插入失败。 我建议在插入前先用着100条的主键去和现有记录进行一次比对,剔除掉逐渐冲突的记录,那么你最后剩下99条都是主键OK的记录,再做insert动作,自然不会再报错。 [/quote] 就是说插入前还要查询对比一次再插入么 能不能一旦重复就跳过或者直接更新 executemany是否能做到呢
繁花尽流年 2018-04-20
  • 打赏
  • 举报
回复
引用 4 楼 rui_love 的回复:
[quote=引用 3 楼 zengertao 的回复:] 批量插入前,为什么不对插入结果集事前做一步异常验证,保证插入动作100%顺利进行?
可以详细一点吗[/quote] 比如你现在有100条未处理新增数据,之前的错法你是直接insert进表,然后发现其中第50条数据主键冲突,导致SQL报错之后的51~100条也插入失败。 我建议在插入前先用着100条的主键去和现有记录进行一次比对,剔除掉逐渐冲突的记录,那么你最后剩下99条都是主键OK的记录,再做insert动作,自然不会再报错。
简欥 2018-04-20
  • 打赏
  • 举报
回复
引用 3 楼 zengertao 的回复:
批量插入前,为什么不对插入结果集事前做一步异常验证,保证插入动作100%顺利进行?
可以详细一点吗
繁花尽流年 2018-04-20
  • 打赏
  • 举报
回复
批量插入前,为什么不对插入结果集事前做一步异常验证,保证插入动作100%顺利进行?
简欥 2018-04-20
  • 打赏
  • 举报
回复
引用 1 楼 neal114 的回复:
你的意思是批量插入的时候,如果插入过程中报错,是否还会继续进行吧,答案是否定的。如果再每个插入语句后面加个GO,插入报错之后,后面的语句会继续插入。
报错的话程序肯定停止了 我是说如果抓到异常并且pass的话后面的插入也不会执行吗
Kongdom12138 2018-04-20
  • 打赏
  • 举报
回复
你的意思是批量插入的时候,如果插入过程中报错,是否还会继续进行吧,答案是否定的。如果再每个插入语句后面加个GO,插入报错之后,后面的语句会继续插入。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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