집 >데이터 베이스 >MySQL 튜토리얼 >현재 MySQL 트랜잭션 도중에 DDL 문이 실행되면 어떻게 되나요?
현재 트랜잭션에서 DDL 문(예: CREATE 또는 DROP 데이터베이스, CREATE, ALTER 또는 DROP 테이블 또는 저장 프로시저)이 실행되면 현재 MySQL 트랜잭션이 커밋되고 종료됩니다. 현재 트랜잭션 내에서 이루어진 모든 데이터베이스 변경 사항은 영구적이며 롤백될 수 없습니다.
mysql> START TRANSACTION; Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO MARKS Values(6,'Manak','History',70); Query OK, 1 row affected (0.26 sec) mysql> Create table student(id int, Name Varchar(10),); Query OK, 0 rows affected (0.84 sec)
위의 예에서 볼 수 있듯이 트랜잭션 중간에 DDL 문이 실행되므로 이 트랜잭션은 암시적으로 종료됩니다. MySQL은 모든 변경 사항을 저장하고 롤백할 수 없습니다. 다음 결과 세트로 이를 관찰할 수 있습니다.
mysql> Rollback; Query OK, 0 rows affected (0.00 sec) mysql> select * from marks; +------+---------+-----------+-------+ | Id | Name | Subject | Marks | +------+---------+-----------+-------+ | 1 | Aarav | Maths | 50 | | 1 | Harshit | Maths | 55 | | 3 | Gaurav | Comp | 69 | | 4 | Rahul | History | 40 | | 5 | Yashraj | English | 48 | | 6 | Manak | History | 70 | +------+---------+---------+---------+ 6 rows in set (0.00 sec)
위 내용은 현재 MySQL 트랜잭션 도중에 DDL 문이 실행되면 어떻게 되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!