-
以下說明唯讀陳述式
-
如果陳述式以以下開頭,則為唯讀:
-
如果它們以上述任何一個開頭,且不包含必須在讀寫伺服器上執行的函數或關鍵字。例如:
GET_LOCK()
FOR UPDATE|SHARE
LOCK 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 陳述式、複製陳述式,以及其他管理陳述式。