insert 加 where条件

 INSERT INTO T1(a,b,c) VALUES ('1','2','3')

如果原来表内有数据: a='1'并且b='2'  则本次insert失效,不能再加进去,除了使用复合主键,其他方法怎么实现?

可以直接写sql,insert into select这种语法。
将要插入的值,写在select 中,where中的条件就是判断是否满足a<>'1' or b<>'2',并且查询一条记录。

insert into T1(a,b,c)
select '1','2','3' from T1 where a<>'1' or b<>'2'

或者

insert into T1(a,b,c)
select '1','2','3' from T1 where not exists
(select a from T1 where a=1 and b=2)

if NOT exists( SELECT * FROM Prc_MatxPlistPrice WHERE a='1' AND b='2')
INSERT INTO T1(a,b,c) VALUES ('1','2','3')

  1. 用merge into 语句,可以自行选择匹配上或者没匹配上时分别执行什么操作,比如匹配上时更新,没匹配上时插入;
  2. 或者在插入时加一个存在条件
    INSERT INTO T1(a,b,c) 
    select '1','2','3' from dual where not exists
    (select 1 from t1 where t1.a=1 and t1.b=2)
    
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632