Istruzioni SQL che causano un commit implicito
Stai visualizzando una vecchia versione di questo article. Visualizza
la versione più recente.
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 TABLEeDROP TABLE, quando viene utilizzata la parola chiaveTEMPORARY.CREATE FUNCTIONeDROP FUNCTION, quando creano una UDF (invece di una Stored Function). Tuttavia,CREATE INDEXeDROP INDEXcausano i commit anche quando usati sulle tabelle temporanee.UNLOCK TABLEScausa un commit solo se prima è stato usato unLOCK TABLESsu tabelle non transazionali.START SLAVE,STOP SLAVE,RESET SLAVEeCHANGE MASTER TOcausano un commit implicito solo da MariaDB 10.0.
Commenti
Sto caricando i commenti......
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.