-
以下說明唯讀陳述式
-
如果陳述式以以下開頭,則為唯讀:
-
如果它們以上述任何一個開頭,且不包含必須在讀寫伺服器上執行的函數或關鍵字。例如:
GET_LOCK()FOR UPDATE|SHARELOCK IN SHARE MODE
-
有些函數可以在唯讀陳述式中產生寫入。此類陳述式會失敗並出現類似以下錯誤:
The MySQL server is running with the --super-read-only option so it cannot execute this statement.此類陳述式可以使用
ROUTER SET或query_attributes明確路由到讀寫伺服器。請參閱每個工作階段設定。您也可以將陳述式包裝在START TRANSACTION ... COMMIT中。
-
-
以下說明讀寫陳述式
以下 DML:
CALL、INSERT、UPDATE、DELETE、REPLACE、IMPORT TABLE、LOAD DATA、LOAD XML、WITH...UPDATE/DELETE。以下帳戶管理陳述式:
GRANT、REVOKE、RENAME USER、CREATE ROLE、CREATE USER、DROP ROLE、DROP USER、SET PASSWORD、SET ROLE、SET DEFAULT ROLE。以下交易和鎖定陳述式:
BEGIN、START TRANSACTION、XA、SAVEPOINT、ROLLBACK、COMMIT。以下資料庫管理陳述式:
SHOW CREATE...、SHOW VARIABLES、SHOW STATUS、SET TRANSACTION(包括SET SESSION ...)、SET NAMES、SET CHARACTER SET、FLUSH PRIVILEGES。以下表格維護陳述式:
ANALYZE TABLE、OPTIMIZE TABLE、CHECK TABLE、REPAIR TABLE。
-
如果
access_mode=auto,則不支援以下陳述式任何非唯讀或讀寫的陳述式。這包括ALTER RESOURCE GROUP 陳述式、複製陳述式,以及其他管理陳述式。