SQL批量插入时,部分数据不作为插入,如何实现?

假设有100条数据,每条数据有3个字段,第三个字段只有Y或者N(Y代表这条数据插入表,N则反之。)
对第三个字段进行判断,为Y就插入表中,而为N时不插入(“不是停止插入”)。

目前想要实现的是,第三字段为N的数据不插入表中,其他位Y则插入。
第三个字段的不插入标识目前我可以随意去修改,如果设为空,并且给字段加上not null约束,一旦数据空就报错。
如果没办法筛选数据,用中间表要怎么实现这种效果,先全部数据插入表中,然后加什么条件才能把目标数据转移到目标表里(不插入标识依然为N,但是插入标识不唯一)。
阅读 3.1k
2 个回答

因为试过了各种约束都发现只要遇到约束就会停止插入,一旦停止插入操作就没有批量插入的意义了。

所以最后采用了直接导入,再进行delete和update等操作来完成目标表,操作比较繁琐,但是思路较清晰,也不失为一种方法。

insert select where筛选不就行了。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题