Mysql
MySQL條件觸發器刪除
我有幾個表(確切地說是 6 個),我想創建一個觸發器,該觸發器將根據主表中的值從表中刪除一行。
詳細說明,
假設我有一個名為“main”的主表,其中有一列名為“table_short”,該行包含“S”、“P”、“A”、“Z”或“K”。“S”指向“Stanovi”表,“K”指向“Kuce”表等等,表示主表中“table_short”中的數據與另一個表相關聯。在主表中還有一個“id_t”列,它指向與“table_short”列關聯的表內的特定行。
現在,我想創建一個觸發器語句,在刪除主表中的一行時,刪除“table_short”中關聯的表中的行號,id 在“id_t”中指定。
我怎麼能這樣做?希望有人明白我的意思。
我試過這個,但在嘗試觸發時它給了我一個錯誤。
BEGIN CASE old.sifra WHEN "S" THEN SET @table="stanovi"; WHEN "K" THEN SET @table="kuce"; WHEN "A" THEN SET @table="apratmani"; WHEN "P" THEN SET @table="poslovne_zgrade"; WHEN "Z" THEN SET @table="zemljista"; END CASE; DELETE FROM @table WHERE id = old.id_t; END
保存觸發程式碼時無法檢查觸發條件:
DELETE FROM @table WHERE @table.id = old.id_t;
因為此時表名不明
BEGIN CASE old.sifra WHEN "S" THEN DELETE FROM stanovi WHERE id = old.id_t; WHEN "K" THEN DELETE FROM kuce WHERE id = old.id_t; WHEN "A" THEN DELETE FROM apratmani WHERE id = old.id_t; WHEN "P" THEN DELETE FROM poslovne_zgrade WHERE id = old.id_t; WHEN "Z" THEN DELETE FROM zemljista WHERE id = old.id_t; END CASE; END
會工作