2011-02-27 172 views
0

如何拒絕刪除語句在之前刪除觸發器(mysql)?如何在刪除觸發器之前拒絕刪除語句?

示例使用案例:我有一個指定的id的記錄,我想不會被刪除。

+0

這是什麼意思?提供一個用例。 – Nishant 2011-02-27 09:21:08

+0

@Nishant:我添加了示例用例。 – 2011-02-27 09:56:29

回答

2

你可以創建一個使用外鍵constrait引用您的ID列(前提是你的表的主鍵)的表。將一行插入到引用ID = 0的「子」表中並從該表中刪除用戶的所有更新/刪除權限。

現在如果有人試圖刪除「父」表中ID = 0的行,由於另一個表中的現有子行而失敗。

+0

這是一個非常糟糕的想法(至少對我來說,因爲我們的db中有超過130個表) – 2011-02-27 10:53:00

+0

@Behrouz:這是否意味着你需要爲每個表提供這種「保護」?聽起來像一個非常奇怪的設置然後.. – 2011-02-27 11:02:11

+0

不是爲每個表,但我有很多表之間的關係,這種解決方案使它更復雜。我寫了一個ORM,它生成SOAP Web服務,增加了一個額外的無用列,使Web服務變得醜陋和容易出錯 – 2011-02-27 11:08:11