如何删除外键为NULL的行?
问题描述:
我有两个表名为tab1
和tab2
。如何删除外键为NULL的行?
tab1的是P&rimary key is price
和price is foreign key in tab2
,这是on delete set null.
当我从存在于TAB2相应的外键
设置为NULL TAB1删除primary key
之一。
现在我想从tab2中删除其外键为空的行。
我写这个查询,但它没有工作。
delete from tab2 where price = null.
请帮我解决它。
答
您不能使用=比较NULL。您应该使用IS NULL
代替
WHERE price IS NULL
NULL值可奇怪的,直到 你习惯它。从概念上讲,NULL 表示“缺少一个未知值”,它与 其他值有所不同。要测试NULL,您不能使用运算符(如=,<或<>)的算术比较 >。
但如果你已经使用on delete set null
,何不干脆将其更改为on delete cascade
和您可以免去手动删除行的麻烦?
答
delete from tab2 where price is null
你真的应该通过你的问题,并接受一些答案。人们需要时间帮助您,至少您可以点击复选标记按钮。 – 2011-03-15 18:42:42
是的你的权利。但我接受的问题是真实的。 – 2011-03-15 18:48:39
-1 to TS,你应该接受你提出的最合理的答案或替代方案。 – wllmsaccnt 2011-03-15 18:51:10