DML Autocommit ли е?
DML Autocommit ли е?

Видео: DML Autocommit ли е?

Видео: DML Autocommit ли е?
Видео: 15 MySQL | DML | Delete | Commit | Rollback | Autocommit 2024, Ноември
Anonim

По подразбиране a DML изявление, изпълнено без изрично стартиране на транзакция, автоматично се ангажира при успех или се връща обратно при неуспех в края на оператора. Това поведение се нарича автоматично завършване . Това поведение се контролира с AUTOCOMMIT параметър.

Оттук нататък, DDL е Autocommit?

SQL оператор, изпълнен в автоматично завършване режимът не може да бъде върнат назад. Повечето DBMS (например MariaDB) сила автоматично завършване за всеки DDL твърдение, дори невинно- автоматично завършване режим. Преди DDL оператор startsПредишните DML оператори в транзакцията са (авто)коммитирани. Всеки DDL се изпълнява в собствен нов автоматично завършване транзакция.

Освен това, SQL Server Autocommit ли е? Autocommit режимът е режимът за управление на транзакциите по подразбиране на SQL Server Двигател на базата данни. Всеки Трансакт- SQL изявлението се извършва или се връща назад, когато завърши.

По този начин могат ли DML операторите да се върнат обратно?

Ефектът на а DML изявление не е постоянен, докато не извършите транзакцията, която го включва. Транзакцията е последователност от SQL изявления че Oracle Database третира като единица (it мога бъди необвързан DML изявление ). Докато транзакцията не бъде извършена, тя мога бъда търкулна назад (отменено).

truncate изисква ли commit?

И ключов момент - въпреки че ОТСЪЩАНЕ TABLE изглежда като DELETE без клауза WHERE, ОТСЪЩАНЕ не е DML, а DDL. ИЗТРИЙ изисква а COMMIT , но TRUNCATEdoes не.

Препоръчано: