我有两个名为tab1
和tab2
的表。
tab1的p rimary key is price
和price is foreign key in tab2
,它是on delete set null.
当我从tab2中的tab1中删除primary key
中的一个时,相应的外键
设置为NULL。
现在我想从tab2中删除其外键为空的行。
我写这个查询但它不起作用。
delete from tab2 where price = null.
请帮我解决。
答案 0 :(得分:5)
您无法使用=来比较NULL。您应该使用IS NULL
代替
WHERE price IS NULL
NULL值可能会令人惊讶,直到 你会习惯的。从概念上讲,NULL 意味着“缺少未知价值”和它 与...有所不同 其他价值观。要测试NULL,你 不能使用算术比较 运算符,例如=,<或<>。
但是,如果您已经在使用on delete set null
,为什么不将其更改为on delete cascade
并省去手动删除行的麻烦?
答案 1 :(得分:2)
delete from tab2 where price is null