2010-01-26 58 views
1

我知道它是可用,因爲5.1的版本,但是:關於MySQL的觸發

  1. 是否穩定?
  2. 如果在特定列而不是整個表上插入/更新操作,是否可以觸發事件?
+0

觸發器實際上是在5.0中引入的,而不是5.1。 – 2010-01-26 21:02:00

回答

2
  1. 我的經驗,是的,完全
  2. 不是唯一,但你可以在觸發的身體增加一個檢查:IF(OLD.col <> NEW.col, ...)
+0

由於觸發,操作會變慢嗎?我的意思是它會等待觸發完成嗎? – user198729 2010-01-26 15:10:19

+0

自從我開始在半大系統上使用它以來,我沒有發現明顯的性能變化。在開始使用觸發器之前,你最應該考慮的事情是你想將數據庫和業務邏輯混合在一起。我個人建議反對它,我只是用它來帶來一些感覺到一個糟糕的數據庫。 – raveren 2010-01-26 16:13:13

0
  1. 我的經驗,是的。
  2. 觸發功能非常有限。您有FOR EACH ROW選項,但沒有任何時間。觸發器內部可以做的事情也非常有限。如果您希望稍後需要更改(即項目將繼續),則不會選擇在mysql觸發器中執行業務邏輯。如果它包含一些簡單的檢查或一致性更新,它可以做得很好。
+0

如果您希望完全觸發支持遷移到PostgreSQL。對於大多數實際的目的,我發現MySQL觸發器工作正常。 – Johan 2011-04-14 22:09:53