为什么:
INSERT INTO tableex (C1, C2)
SELECT null, 'stringtext' WHERE NOT EXISTS (SELECT * FROM tableex WHERE C1 = null AND C2 = 'stringtext');
当C1 = null且C2 =' stringtext'的行时插入新行已经存在?如何修复它,只有在表中没有具有相同属性的行时才会插入。
答案 0 :(得分:1)
WHERE NOT EXISTS (SELECT * FROM tableex WHERE C1 = null AND C2 = 'stringtext')
c1 = null
评估为null
。 not exists
计算结果为true
,因此将值插入表中。
您应该使用c1 is null
代替。
答案 1 :(得分:0)
您正在测试C1 = NULL
,但您需要使用:
C1 IS NULL
SQL认为null不等于另一个null