簡體   English   中英

如何從整個相關的MySQL表中刪除數據?

[英]How to delete data from an entire related MySQL table?

我有3張桌子

tbl_car
id | name
1 | toyota

tbl_brand
id | brand_name | **car_id** (one to many)
1 | brand1 | 1
2 | brand2 | 1


tbl_item
id | item_name | **brand_id** (one to many)
1 | brand1_item1 | 1
2 | brand1_item2 | 1
3 | brand2_item1 | 2
4 | brand2_item2 | 2

我想從tbl_car刪除數據id = 1,我嘗試

DELETE tbl_car a LEFT JOIN tbl_brand b ON a.id = b.car_id LEFT JOIN tbl_item c ON b.id = c.brand_id WHERE a.id = 1

但這沒用。 我想要的是從關系表中刪除tbl_car id = 1和整個數據。

您可以這樣嘗試:

DELETE a.*,b.*,c.* FROM tbl_car a LEFT JOIN tbl_brand b ON a.id = b.car_id LEFT JOIN tbl_item c ON b.id = c.brand_id WHERE a.id = 1

或嘗試在表tbl_car中刪除后使用觸發器

  delimiter $$
    CREATE TRIGGER `after_delete_Car`     
      AFTER DELETE ON `tbl_car`     
      FOR EACH ROW     
    BEGIN
      DELETE FROM tbl_brand WHERE car_id=OLD.id;
      DELETE FROM tbl_item WHERE brand_id=OLD.id;
    END
    $$
    delimiter ; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM