首頁 >資料庫 >mysql教程 >MySQL 觸發器可以更新呼叫它們的同一個表格嗎?

MySQL 觸發器可以更新呼叫它們的同一個表格嗎?

Susan Sarandon
Susan Sarandon原創
2024-10-29 04:00:02640瀏覽

 Can MySQL Triggers Update the Same Table They Are Called From?

MySQL 觸發器:更新相同表行的限制

問題:如何在MySQL 觸發器中為新行設定值並更新相同一個表中的另一行?

嘗試建立觸發器,該觸發器在行插入時執行以下操作:

  1. 計算並設定新行的特定值。
  2. 將上一行的 endDate 設定為新行的 startDate 前一天。

但是,觸發器導致錯誤:「Can't update table split in Stored函數/觸發器,因為它已被呼叫此儲存函數/觸發器的語句使用。」

答案:

不幸的是,無法使用觸發器執行所需的操作。 MySQL 觸發器更新呼叫它們的同一個表的能力受到限制。施加此限制是為了防止同時更新可能引起的資料完整性問題。

實作所需功能的建議方法是建立一個預存過程,將插入和更新操作封裝在單一事務中。這確保了資料庫在整個過程中保持一致的狀態。

以上是MySQL 觸發器可以更新呼叫它們的同一個表格嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn