MariaDB-트랜잭션
트랜잭션은 순차적 인 그룹 작업입니다. 단일 단위로 작동하며 그룹 내의 모든 작업이 성공적으로 실행될 때까지 종료되지 않습니다. 그룹의 단일 실패로 인해 전체 트랜잭션이 실패하고 데이터베이스에 영향을주지 않습니다.
트랜잭션은 ACID (원 자성, 일관성, 격리 및 내구성)를 준수합니다.
Atomicity − 실패시 중단하고 변경 사항을 롤백하여 모든 작업의 성공을 보장합니다.
Consistency − 데이터베이스가 성공적인 트랜잭션에 변경 사항을 적용하도록합니다.
Isolation − 거래의 독립적 인 거래 운영이 가능합니다.
Durability − 시스템 오류 발생시 성공적인 트랜잭션의 지속성을 보장합니다.
트랜잭션 문의 맨 앞에는 START TRANSACTION 문과 COMMIT 및 ROLLBACK 문이 있습니다.
START TRANSACTION은 거래를 시작합니다.
COMMIT는 데이터 변경 사항을 저장합니다.
ROLLBACK은 트랜잭션을 종료하고 변경 사항을 삭제합니다.
성공적인 트랜잭션에서 COMMIT가 작동합니다. 실패시 ROLLBACK이 작동합니다.
Note− 일부 문은 암시 적 커밋을 유발하고 트랜잭션 내에서 사용될 때 오류를 발생시킵니다. 이러한 명령문의 예에는 CREATE, ALTER 및 DROP이 포함되지만 이에 국한되지는 않습니다.
MariaDB 트랜잭션에는 SAVEPOINT 및 LOCK TABLES와 같은 옵션도 포함됩니다. SAVEPOINT는 ROLLBACK과 함께 사용할 복원 지점을 설정합니다. LOCK TABLES를 사용하면 세션 중에 테이블에 대한 액세스를 제어하여 특정 기간 동안 수정을 방지 할 수 있습니다.
AUTOCOMMIT 변수는 트랜잭션에 대한 제어를 제공합니다. 1로 설정하면 모든 작업이 성공적인 트랜잭션으로 간주되고 0으로 설정하면 명시 적 COMMIT 문에서만 변경 사항이 지속됩니다.
거래 구조
트랜잭션 문의 일반 구조는 START TRANSACTION으로 시작하는 것으로 구성됩니다. 다음 단계는 하나 이상의 명령 / 작업을 삽입하고, 오류를 확인하는 문을 삽입하고, ROLLBACK 문을 삽입하여 발견 된 오류를 관리하고, 마지막으로 COMMIT 문을 삽입하여 성공적인 작업에 변경 사항을 적용합니다.
아래 주어진 예를 검토하십시오-
START TRANSACTION;
SELECT name FROM products WHERE manufacturer = 'XYZ Corp';
UPDATE spring_products SET item = name;
COMMIT;