mysql删除触发器

时间:2012-06-08 15:41:12

标签: mysql triggers

所以我有 3个表

tbl_client(clientpk, name, etc)
tbl_address(address_pk, street1, street2 etc) 
tbl_client_address (client_address_pk, clientpk_fk, addresspk_fk)

我对触发器并不是那么熟悉所以也许有人可以告诉我如何在删除客户端时实现这一点,它也会删除tbl_client_address中的条目。我知道这可以通过引用来完成,但事实是,当tbl_client_address被删除时,我还希望删除与该客户端相关的地址。

有可能吗?

2 个答案:

答案 0 :(得分:1)

如果您使用的是innodb,则可以在主表中添加约束:

CONSTRAINT myForeignKey外键(typeId)       参考typesid)ON更新CASCADE上的DELCAD CASCADE

而不是乱用触发器

答案 1 :(得分:0)

您希望在删除客户端记录时删除地址记录这一事实表明您可能根本不需要tbl_client_address解析表。如果给定地址实际上可以与多个客户端关联,则只需要tbl_client_address表(如果是这种情况,则不希望根据删除tbl_client记录自动级联删除)。所以我要说的是你应该考虑是否只需要一个tbl_address.clientpk_fk字段,完全删除tbl_client_address表然后使用Jeff建议的约束来级联tbl_client记录删除。