>  기사  >  데이터 베이스  >  MySQL 트랜잭션 관리 소개(예제 포함)

MySQL 트랜잭션 관리 소개(예제 포함)

不言
不言앞으로
2019-02-27 11:59:202557검색

이 기사는 MySQL 트랜잭션 관리에 대한 소개를 제공합니다(예제 포함). 필요한 친구가 참고할 수 있기를 바랍니다.

트랜잭션 처리는 데이터베이스 등의 무결성을 유지하여 mysql 작업의 성공 또는 실패를 보장하는 데 사용됩니다(myisam은 트랜잭션을 지원하지 않습니다)

1. 키워드

  1. 트랜잭션(트랜잭션)은

  2. Rollback은 지정된 SQL 문을 실행 취소하는 프로세스를 의미합니다.

  3. Commit은 저장되지 않은 SQL 문 결과를 데이터베이스 테이블에 쓰는 것을 의미합니다.

  4. Savepoint는 트랜잭션 처리 롤백을 실행할 수 있는 임시 자리 표시자(자리 표시자)입니다(전체 트랜잭션 롤백과 반대).

2. 롤백을 사용하세요

select * from orderitems;
START TRANSACTION;
DELETE FROM orderitems;
select * from orderitems;
ROLLBACK;
select * from orderitems;

3. 커밋을 사용하세요

START TRANSACTION;
DELETE FROM orderitems where order_num = 20010;
DELETE FROM orders WHERE order_num = 20010;
COMMIT

두 번째 삭제에 실패하면 트랜잭션 처리 블록의 문을 롤백하고 취소하세요

4. 복잡한 트랜잭션 처리에는 부분 작업이 필요할 수 있습니다. 커밋 또는 롤백.

트랜잭션의 일부 롤백을 지원하려면 자리 표시자를 트랜잭션 블록의 적절한 위치에 배치해야 합니다. 이렇게 하면 롤백해야 하는 경우 자리 표시자로 돌아갈 수 있습니다.

이러한 자리 표시자를 보존 지점이라고 합니다. 자리 표시자를 생성하려면 다음과 같이 SAVEPOINT를 사용할 수 있습니다.

보존 지점 만들기

SAVEPOINT delete1

보존 지점으로 돌아가기

ROLLBACK TO delete1
tips

보존 지점이 많을수록 더 좋고, 편리하고 유연하게 사용하지만 잊어버릴 필요는 없습니다. 하! 모든 것은 적당히 이루어집니다

보존 지점 해제


    보존 지점은 트랜잭션이 완료된 후 자동으로 해제됩니다(ROLLBACK 또는 COMMIT 실행)
  1. 보존 지점을 명시적으로 해제

    release savepoint delete1

  2. 5. 행동을 커밋하려면

mysql은 모든 변경 사항을 자동으로 커밋합니다.

변경 사항을 자동으로 커밋하지 마세요

set autocommit = 0;

위 내용은 MySQL 트랜잭션 관리 소개(예제 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제