为了账号安全,请及时绑定邮箱和手机立即绑定

如何将以上的sql语修改后重复执行不会插入重复数据

如何将以上的sql语修改后重复执行不会插入重复数据

小唯快跑啊 2018-11-02 14:17:25
A B 两个表结构完全相同 都是 id (自增) name , amountinsert into b (customername,amount) select customername,amount from a where a.amount<500000现在在上面那条语句的前提下,将以上的insert 语句进行改造成可以重复执行的语句,重复执行后不会产生重复数据???下面是A表中的数据这是一道面试题,请大神指教!!!
查看完整描述

2 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

纯粹就事论事的解决方法就是楼上这样的,不考虑任何性能或者其他问题。
笔试的时候这样就行了。
面试的话,你可以多讲讲,比如可以这样解决,但是,这样解决会有什么问题,巴拉巴拉巴啦啦,
顺便就可以提到,使用自增ID的弊病所在,
就是这儿出现的,因为你不能Insert 原始的ID进入新表,所以要么在新表种增加一个字段用于记录老ID,
要么就得用这种又蠢又慢的判断语句来避免重复数据了。

查看完整回答
反对 回复 2018-11-05
?
HUX布斯

TA贡献1876条经验 获得超6个赞

insert into b (customername,amount)

select customername,amount

from a

where a.amount<500000

and not exists(select 1 from b where b.customername = a.customername and b.amount = a.amount)

查看完整回答
反对 回复 2018-11-05
  • 2 回答
  • 0 关注
  • 1022 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信