Latest web development tutorials

SQLite는 트랜잭션

트랜잭션 (거래)는 데이터베이스에 작업 단위입니다. 트랜잭션 (트랜잭션)은 사용자에 의해 수동으로 수행 될 수 있고,이 데이터베이스 프로그램의 어떤 종류에 의해 자동으로 수행 될 수 일 또는 전체 시퀀스의 논리적 순서이다.

트랜잭션 (트랜잭션)의 데이터베이스를 확장하기 위해 하나 이상의 변화를 말한다. 당신은 레코드 또는 레코드 업데이트를 만들거나 테이블에서 레코드를 삭제하는 경우 예를 들어, 테이블에 트랜잭션을 수행하는 것입니다. 이는 데이터의 무결성을 보장하고 데이터베이스 오류를 처리하는 트랜잭션을 제어하는 ​​것이 중요하다.

사실, 당신은 그들 모두 실행을위한 트랜잭션의 일부로 조립, 그룹으로 SQLite는 쿼리 연맹을 많이 넣을 수 있습니다.

부동산 거래

트랜잭션 (트랜잭션)은 일반적으로 표준 약어 ACID에 기초하여, 다음의 네 가지 특성을 갖는다 :

  • 원 자성 (자성이) : 작업이 이전 상태로 롤백하기 전에 작업 내의 모든 작업 단위, 그렇지 않으면, 트랜잭션이 고장시에 종료됩니다 성공적으로 완료되었는지 확인합니다.

  • 일관성 (일관성) : 트랜잭션에 올바르게 데이터베이스 변경 상태가 성공적으로 제출되었는지 확인합니다.

  • 절연 (절연) : 트랜잭션이 독립적으로 투명하게 작동합니다.

  • (내구성) 영구은 : 트랜잭션이 시스템 오류가 여전히 존재하는 경우에 결과 나 효과를 제출되었음을 확인합니다.

트랜잭션 제어

트랜잭션을 제어하려면 다음 명령을 사용하여

  • 트랜잭션을 BEGIN : 트랜잭션을 시작합니다.

  • 변경 사항을 저장하거나최종 TRANSACTION 명령을 사용할 수 있습니다 : COMMIT.

  • ROLLBACK : 변경 사항을롤백.

만 DML과 트랜잭션 제어 명령은 INSERT, UPDATE 명령과 함께 삭제합니다. 데이터베이스에 이러한 작업이 자동으로 최선을 다하고 있습니다 때문에 때 그들은 테이블을 사용하여 테이블을 만들거나 삭제할 수 없습니다.

TRANSACTION 명령을 BEGIN

트랜잭션 (거래) 트랜잭션을 BEGIN 명령을 사용하거나 간단한 시작 명령을 시작할 수 있습니다. 이러한 거래 일반적으로 마지막 실행은 다음 COMMIT 또는 ROLLBACK 명령 할 때까지 계속됩니다. 데이터베이스가 폐쇄되거나 오류가 발생할 때, 트랜잭션이 롤백됩니다. 다음은 간단한 문법 트랜잭션의 시작 :

BEGIN;

또는 

트랜잭션을 BEGIN;

명령을 COMMIT

COMMIT 명령은 데이터베이스 트랜잭션 통화 거래 명령에 대한 변경 사항을 저장하는 데 사용됩니다.

COMMIT 또는 데이터베이스에 명령을 롤백 지난 이후의 모든 트랜잭션을 저장하는 명령을 COMMIT.

다음과 같이 COMMIT 명령 구문은 다음과 같습니다

COMMIT;

또는

최종 TRANSACTION;

ROLLBACK 명령

ROLLBACK 명령은 트랜잭션의 데이터베이스에 저장되지 않은 트랜잭션을 취소하는 명령입니다.

ROLLBACK 명령은 마지막으로 이후 거래를 취소 할 수 있습니다 COMMIT 또는 ROLLBACK 명령 이후 발표했다.

다음과 같은 구문 ROLLBACK 명령은 다음과 같습니다

ROLLBACK;

가정하자 회사 테이블에는 다음과 같은 기록이있다 :

ID의 이름 나이 주소 급여
---------- ---------- ---------- ---------- ----------
1 폴 (32) 캘리포니아 20000.0
2 알렌 (25) 텍사스 15000.0
3 테디 (23) 노르웨이 20000.0
4 마크 (25) 리치 사교계 65000.0
5 다윗 (27) 텍사스 85000.0
6 김 (22) 사우스 홀 45000.0
7 제임스 (24) 휴스턴 10000.0

자, 트랜잭션을 시작하자, 테이블 연령 = 25에서 레코드를 삭제하고, 마지막으로, 우리는 모든 변경 사항을 취소 할 ROLLBACK 명령을 사용합니다.

sqlite가> BEGIN;
sqlite가> 회사는 어디에서 삭제 연령 = 25;
sqlite가> ROLLBACK;

회사 테이블을 확인, 여전히 다음과 같은 기록이있다 :

ID의 이름 나이 주소 급여
---------- ---------- ---------- ---------- ----------
1 폴 (32) 캘리포니아 20000.0
2 알렌 (25) 텍사스 15000.0
3 테디 (23) 노르웨이 20000.0
4 마크 (25) 리치 사교계 65000.0
5 다윗 (27) 텍사스 85000.0
6 김 (22) 사우스 홀 45000.0
7 제임스 (24) 휴스턴 10000.0

이제, 다른 트랜잭션을 시작 테이블 나이 = 25에서 레코드를 삭제할 수 있도록, 그리고 마지막으로 우리는 모든 변경 사항을 적용하기 위해 COMMIT 명령을 사용합니다.

sqlite가> BEGIN;
sqlite가> 회사는 어디에서 삭제 연령 = 25;
sqlite가> COMMIT;

회사 테이블, 다음과 같은 기록을 확인 :

ID의 이름 나이 주소 급여
---------- ---------- ---------- ---------- ----------
1 폴 (32) 캘리포니아 20000.0
3 테디 (23) 노르웨이 20000.0
5 다윗 (27) 텍사스 85000.0
6 김 (22) 사우스 홀 45000.0
7 제임스 (24) 휴스턴 10000.0