2014-01-19 47 views
1

我有一个包含产品表...像如果行是另一个

productname | price | category .... .... ... 

类别中删除如何更新表中包含一个int值,它是已选定的类别

的ID
id | categoryname | categorydescription ... ... 

当我删除一个目录(因为这是一个电子商务网站,我在PHP做的,所以用户可以管理和删除随意类别),我想所有那些类别是删除的类别标识的产品,将该值设置为0,换句话说,不设置类别。

我想知道如何用MYSQL做到这一点,并让我知道如果我应该通过PHP代码来做到这一点。

+1

我想你可以用触发器做到这一点。触发删除事件触发。 – vasin1987

+0

我已经研究过,我还没有理解我在网上看到的例子,我无法弄清楚如何将它们应用于我的案例。 – JuanBonnett

回答

1

我希望你可以用触发器做。这是未经测试的。它来自我的档案。请检查。

CREATE TRIGGER del_cat_prod AFTER DELETE on category 
FOR EACH ROW 
BEGIN 
update products set category_id = 0 where category_id = old.id;   
END 
+0

“old.id”来自?它知道old.id的意思是“deletedrow.categoryid”?类似的东西? – JuanBonnett

+0

old.id最近从类别表中删除了id。 –

0

希望这将帮助你

UPDATE products SET category = 0 WHERE category = 'ur id' ; 
+0

我知道我知道,但是......如何让MYSQL在从类别表中删除一行时自动执行它?没有PHP – JuanBonnett

+0

您可能想使用['TRIGGER'](http://dev.mysql.com/doc/refman/5.5/en/triggers.html)来查看@JuanBonnett –

相关问题