Select*fromemployee.tbl;+----+---------+ |ID|이름 | +----+---------+|1 |모한 ||2 |가우라브 ||3&nb"/> Select*fromemployee.tbl;+----+---------+ |ID|이름 | +----+---------+|1 |모한 ||2 |가우라브 ||3&nb">

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

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB앞으로
2023-08-27 18:09:11876검색

当我们在 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으로 문의하시기 바랍니다. 삭제