> 데이터 베이스 > MySQL 튜토리얼 > MySQL 저장 프로시저에서 COMMIT를 사용하고 START 트랜잭션 아래의 트랜잭션 중 하나가 실패하면 어떻게 됩니까?

MySQL 저장 프로시저에서 COMMIT를 사용하고 START 트랜잭션 아래의 트랜잭션 중 하나가 실패하면 어떻게 됩니까?

WBOY
풀어 주다: 2023-08-27 18:09:11
앞으로
874명이 탐색했습니다.

当我们在 MySQL 存储过程中使用 COMMIT 并且 START 事务下的事务之一失败时,会发生什么情况?

쿼리 중 하나가 실패하거나 오류를 생성하고 다른 쿼리가 올바르게 실행된다고 가정하면 MySQL은 올바르게 실행된 쿼리에 대한 변경 사항을 계속 커밋합니다. 다음 데이터와 함께 "employee.tbl" 테이블을 사용하는 다음 예에서 이해할 수 있습니다.

Example

mysql> Select * from employee.tbl;
+----+---------+
| Id | Name    |
+----+---------+
| 1  | Mohan   |
| 2  | Gaurav  |
| 3  | Sohan   |
| 4  | Saurabh |
| 5  | Yash    |
+----+---------+
5 rows in set (0.00 sec)

mysql> Delimiter //

mysql> Create Procedure st_transaction_commit_save()
    -> BEGIN
    -> START TRANSACTION;
    -> INSERT INTO employee.tbl (name) values ('Rahul');
    -> UPDATE employee.tbl set name = 'Gurdas' WHERE id = 10;
    -> COMMIT;
    -> END //
Query OK, 0 rows affected (0.00 sec)
로그인 후 복사

이제 이 프로시저를 호출하면 UPDATE 쿼리가 오류를 생성한다는 것을 알 수 있습니다. 우리 테이블 = 10에 ID가 없습니다. 그러나 첫 번째 쿼리가 성공적으로 실행되므로 COMMIT는 변경 사항을 테이블에 저장합니다.

rreee

위 내용은 MySQL 저장 프로시저에서 COMMIT를 사용하고 START 트랜잭션 아래의 트랜잭션 중 하나가 실패하면 어떻게 됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿