如何删除其外键为NULL的行?

时间:2011-03-15 18:38:10

标签: mysql foreign-keys

我有两个名为tab1tab2的表。

tab1的p rimary key is priceprice is foreign key in tab2,它是on delete set null.

当我从tab2中的tab1中删除primary key中的一个时,相应的外键

设置为NULL。

现在我想从tab2中删除其外键为空的行。

我写这个查询但它不起作用。

delete from tab2 where price = null.

请帮我解决。

2 个答案:

答案 0 :(得分:5)

您无法使用=来比较NULL。您应该使用IS NULL代替

WHERE price IS NULL

来自MySQL Reference Manual

  

NULL值可能会令人惊讶,直到   你会习惯的。从概念上讲,NULL   意味着“缺少未知价值”和它   与...有所不同   其他价值观。要测试NULL,你   不能使用算术比较   运算符,例如=,<或<>。

但是,如果您已经在使用on delete set null,为什么不将其更改为on delete cascade并省去手动删除行的麻烦?

答案 1 :(得分:2)

delete from tab2 where price is null