- A.5.1. 我在哪裡可以找到 MySQL 8.4 觸發器的文件?
- A.5.2. 有 MySQL 觸發器的討論論壇嗎?
- A.5.3. MySQL 有陳述式層級或資料列層級觸發器嗎?
- A.5.4. 有任何預設觸發器嗎?
- A.5.5. 如何在 MySQL 中管理觸發器?
- A.5.6. 有辦法檢視指定資料庫中的所有觸發器嗎?
- A.5.7. 觸發器儲存在哪裡?
- A.5.8. 觸發器可以呼叫儲存程序嗎?
- A.5.9. 觸發器可以存取表格嗎?
- A.5.10. 一個表格可以有多個具有相同觸發事件和動作時間的觸發器嗎?
- A.5.11. 觸發器可以更新遠端伺服器上的表格嗎?
- A.5.12. 觸發器是否適用於複寫?
- A.5.13. 如何將在來源上透過觸發器執行的動作複寫到複本?
A.5.1. | 我可以在哪裡找到 MySQL 8.4 觸發器的文件? |
請參閱章節 27.3,「使用觸發器」。 | |
A.5.2. | 有 MySQL 觸發器的討論論壇嗎? |
A.5.3. | MySQL 有陳述式層級或資料列層級觸發器嗎? |
所有觸發器都是 | |
A.5.4. | 有任何預設觸發器嗎? |
沒有明確的。MySQL 對某些 | |
A.5.5. | 如何在 MySQL 中管理觸發器? |
可以使用 可以透過查詢 | |
A.5.6. | 有辦法檢視指定資料庫中的所有觸發器嗎? |
有。您可以使用對
如需關於此表格的更多資訊,請參閱章節 28.3.44,「INFORMATION_SCHEMA TRIGGERS 表格」。 您也可以使用 | |
A.5.7. | 觸發器儲存在哪裡? |
觸發器儲存在 | |
A.5.8. | 觸發器可以呼叫儲存程序嗎? |
可以。 | |
A.5.9. | 觸發器可以存取表格嗎? |
觸發器可以存取其本身表格中的舊資料和新資料。觸發器也可以影響其他表格,但不允許修改已由叫用函數或觸發器的陳述式使用的表格(用於讀取或寫入)。 | |
A.5.10. | 一個表格可以有多個具有相同觸發事件和動作時間的觸發器嗎? |
在 MySQL 8.4 中,可以為給定的表格定義多個具有相同觸發事件和動作時間的觸發器。例如,您可以為一個表格建立兩個 | |
A.5.11. | 觸發器可以更新遠端伺服器上的表格嗎? |
可以。可以使用 | |
A.5.12. | 觸發器是否適用於複寫? |
是。但是,它們的工作方式取決於您使用的是 MySQL 的「經典」陳述式型複寫格式還是資料列型複寫格式。 當使用陳述式型複寫時,複本上的觸發器會由來源上執行的陳述式執行(並複寫到複本)。 當使用資料列型複寫時,由於在來源上執行然後複寫到複本的陳述式,觸發器不會在複本上執行。相反地,當使用資料列型複寫時,會在複本上套用在來源上執行觸發器所造成的變更。 如需更多資訊,請參閱章節 19.5.1.36,「複寫與觸發器」。 | |
A.5.13. | 如何將在來源上透過觸發器執行的動作複寫到複本? |
同樣地,這取決於您使用的是基於語句的複製還是基於列的複製。 基於語句的複製。首先,必須在副本伺服器上重新建立來源伺服器上存在的觸發器。完成此操作後,複製流程的工作方式與任何其他參與複製的標準 DML 語句相同。例如,考慮一個名為 基於列的複製。當您使用基於列的複製時,在來源伺服器上執行觸發器所引起的變更會應用到副本上。但是,在基於列的複製下,觸發器本身實際上不會在副本上執行。這是因為,如果來源和副本都應用了來源的變更,而且觸發這些變更的觸發器也在副本上應用,那麼變更實際上會在副本上應用兩次,導致來源和副本上的資料不同。 在大多數情況下,基於列的複製和基於語句的複製的結果是相同的。但是,如果您在來源和副本上使用不同的觸發器,則不能使用基於列的複製。(這是因為基於列的格式會將在來源上執行的觸發器所做的變更複製到副本,而不是導致觸發器執行的語句,並且副本上的相應觸發器不會執行。)相反,任何導致此類觸發器執行的語句都必須使用基於語句的複製來複製。 如需更多資訊,請參閱章節 19.5.1.36,「複寫與觸發器」。 |