DML Autocommit мөн үү?
DML Autocommit мөн үү?

Видео: DML Autocommit мөн үү?

Видео: DML Autocommit мөн үү?
Видео: MySQL: AUTOCOMMIT, COMMIT, ROLLBACK 2024, Арваннэгдүгээр
Anonim

Анхдагч байдлаар, a DML гүйлгээг тодорхой эхлүүлэхгүйгээр гүйцэтгэсэн мэдэгдэл нь мэдэгдлийн төгсгөлд автоматаар амжилттай болсон эсвэл бүтэлгүйтсэн тохиолдолд буцаагдана. Энэ зан үйлийг нэрлэдэг автокоммит . Энэ зан үйлийг ашиглан хянадаг АВТО ХОРОО параметр.

Эндээс харахад DDL нь автоматаар үйлчилдэг үү?

Гүйцэтгэсэн SQL хэллэг автокоммит горимыг буцаах боломжгүй. Ихэнх DBMS (жишээ нь MariaDB) хүч автокоммит бүрийн хувьд DDL мэдэгдэл ч гэсэн автокоммит горим. Өмнө нь DDL мэдэгдэл эхлэхээс өмнөх гүйлгээний DML мэдэгдлүүд (автоматаар) хийгдсэн. Тус бүр DDL өөрийн шинээр гүйцэтгэгдэж байна автокоммит гүйлгээ.

Нэмж хэлэхэд, SQL Server Autocommit мөн үү? Автоматаар гүйцэтгэх горим нь гүйлгээний удирдлагын үндсэн горим юм SQL сервер Өгөгдлийн сангийн хөдөлгүүр. Бүх гүйлгээ- SQL мэдэгдлийг дуусгасны дараа хийх эсвэл буцаах.

Ийм байдлаар DML мэдэгдлүүдийг буцааж болох уу?

А-ийн нөлөө DML мэдэгдэл түүнийг агуулсан гүйлгээг хийх хүртэл байнгын биш. Гүйлгээ нь SQL-ийн дараалал юм мэдэгдэл Oracle мэдээллийн сан нь нэгж гэж үздэг (энэ чадна ганц бие байх DML мэдэгдэл ). Гүйлгээ хийх хүртэл, энэ нь чадна байх буцаж эргэв (буцаасан).

Таслах нь амлалт шаарддаг уу?

Мөн гол цэг - хэдий ч ТАСАХ TABLE нь WHERE заалтгүй DELETE шиг харагдаж байна, ТАСАХ Энэ нь DML биш, харин DDL юм. УСТГАХ шаарддаг а ЗОРИУЛАХ , гэхдээ TRUNCATE хийдэг үгүй.

Зөвлөмж болгож буй: