Istruzioni SQL che causano un commit implicito
Alcune istruzioni SQL provocano un commit implicito. Come regola generale, si tratta dei comandi DDL. Ecco l'elenco:
ALTER DATABASE ... UPGRADE DATA DIRECTORY NAME ALTER EVENT ALTER FUNCTION ALTER PROCEDURE ALTER SERVER ALTER TABLE ALTER VIEW ANALYZE TABLE BEGIN CACHE INDEX CHANGE MASTER TO CHECK TABLE CREATE DATABASE CREATE EVENT CREATE FUNCTION CREATE INDEX CREATE PROCEDURE CREATE SERVER CREATE TABLE CREATE TRIGGER CREATE USER CREATE VIEW DROP DATABASE DROP EVENT DROP FUNCTION DROP INDEX DROP PROCEDURE DROP SERVER DROP TABLE DROP TRIGGER DROP USER DROP VIEW FLUSH GRANT LOAD INDEX INTO CACHE LOCK TABLES OPTIMIZE TABLE RENAME TABLE RENAME USER REPAIR TABLE RESET REVOKE SET PASSWORD SHUTDOWN START SLAVE START TRANSACTION STOP SLAVE TRUNCATE TABLE UNLOCK TABLES
SET autocommit = 1
causa un commit implicito se il valore era 0.
Tutte queste istruzioni causano un commit implicito prima dell'esecuzione. Alcune di esse, come CREATE TABLE ... SELECT
, ne causa un altro dopo l'esecuzione. Tali istruzioni non potrebbero comunque essere annullate.
Eccezioni
Queste istruzioni non causano un commit implicito nei casi seguenti:
CREATE TABLE
,ALTER TABLE
eDROP TABLE
, quando viene utilizzata la parola chiaveTEMPORARY
.CREATE FUNCTION
eDROP FUNCTION
, quando creano una UDF (invece di una Stored Function). Tuttavia,CREATE INDEX
eDROP INDEX
causano i commit anche quando usati sulle tabelle temporanee.UNLOCK TABLES
causa un commit solo se prima è stato usato unLOCK TABLES
su tabelle non transazionali.START SLAVE
,STOP SLAVE
,RESET SLAVE
eCHANGE MASTER TO
causano un commit implicito solo da MariaDB 10.0.
Content reproduced on this site is the property of its respective owners,
and this content is not reviewed in advance by MariaDB. The views, information and opinions
expressed by this content do not necessarily represent those of MariaDB or any other party.