- A.5.1. 我在哪裡可以找到 MySQL 9.0 觸發器的文件?
- 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 9.0 觸發器的文件? |
請參閱第 27.4 節,「使用觸發器」。 | |
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 9.0 中,可以為給定表格定義多個具有相同觸發事件和動作時間的觸發器。例如,您可以為一個表格設定兩個 | |
A.5.11. | 觸發器是否可以更新遠端伺服器上的表格? |
可以。可以使用 | |
A.5.12. | 觸發器是否適用於複製? |
是。但是,其運作方式取決於您使用的是 MySQL 的 「經典」陳述式式或資料列式複製格式。 使用陳述式式複製時,副本上的觸發器會由在來源上執行(並複製到副本)的陳述式執行。 使用資料列式複製時,不會因為在來源上執行然後複製到副本的陳述式而在副本上執行觸發器。相反地,使用資料列式複製時,在來源上執行觸發器所引起的變更會套用在副本上。 如需更多資訊,請參閱第 19.5.1.37 節,「複製和觸發器」。 | |
A.5.13. | 如何將來源上觸發器執行的動作複製到副本? |
同樣地,這取決於您使用的是陳述式式或資料列式複製。 陳述式式複製。 首先,必須在副本伺服器上重新建立來源上存在的觸發器。完成此操作後,複製流程會像任何其他參與複製的標準 DML 陳述式一樣運作。例如,假設有一個表格 以列為基礎的複寫 (Row-based replication)。 當您使用以列為基礎的複寫時,在來源端執行觸發程序所造成的變更會套用至複本。然而,觸發程序本身實際上不會在以列為基礎的複寫下於複本上執行。這是因為,如果來源端和複本都套用了來自來源端的變更,並且另外在複本上套用了造成這些變更的觸發程序,則變更實際上會在複本上套用兩次,導致來源端和複本上的資料不同。 在大多數情況下,以列為基礎的複寫和以語句為基礎的複寫的結果是相同的。但是,如果您在來源端和複本上使用不同的觸發程序,則您不能使用以列為基礎的複寫。(這是因為以列為基礎的格式會將在來源端執行的觸發程序所做的變更複寫到複本,而不是造成觸發程序執行的語句,而複本上對應的觸發程序則不會執行。)相反地,任何導致執行此類觸發程序的語句都必須使用以語句為基礎的複寫進行複寫。 如需更多資訊,請參閱第 19.5.1.37 節,「複製和觸發器」。 |