2011-03-15 57 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