2011-03-15 54 views
0

我有两个表名为tab1tab2如何删除外键为NULL的行?

tab1的是P&rimary key is priceprice is foreign key in tab2,这是on delete set null.

当我从存在于TAB2相应的外键

设置为NULL TAB1删除primary key之一。

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

我写这个查询,但它没有工作。

delete from tab2 where price = null. 

请帮我解决它。

+2

你真的应该通过你的问题,并接受一些答案。人们需要时间帮助您,至少您可以点击复选标记按钮。 – 2011-03-15 18:42:42

+0

是的你的权利。但我接受的问题是真实的。 – 2011-03-15 18:48:39

+0

-1 to TS,你应该接受你提出的最合理的答案或替代方案。 – wllmsaccnt 2011-03-15 18:51:10

回答

5

您不能使用=比较NULL。您应该使用IS NULL代替

WHERE price IS NULL 

MySQL Reference Manual

NULL值可奇怪的,直到 你习惯它。从概念上讲,NULL 表示“缺少一个未知值”,它与 其他值有所不同。要测试NULL,您不能使用运算符(如=,<或<>)的算术比较 >。

但如果你已经使用on delete set null,何不干脆将其更改为on delete cascade和您可以免去手动删除行的麻烦?

2
delete from tab2 where price is null