SQLite | SQLite 함수 | 데이터베이스 연결 후 실행된 SQL 문에 의해 수정/삭제/추가 된 행의 총수를 조회 (total_changes 함수)

total_changes 함수를 사용하여 데이터베이스에 연결되고 실행된 SQL 문에 의한 수정 또는 삭제된 행의 총수를 구할 수 있다. 여기에서는 total_changes 함수의 사용법에 대해 설명한다.

최근 SQL 구문의 수정 또는 삭제된 행수를 얻으려면 최근 실행된 SQL 문에 의해 수정/삭제/추가된 행수 구하기 (changes 함수)을 참조한다.

 

total_changes 함수 사용법

total_changes 함수는 데이터베이스에 연결되고 추가/삭제/수정의 SQL 문에 의해 처리된 행의 총 수를 얻기 위해 사용한다. 형식은 다음과 같다.

total_changes()

데이터베이스에 연결한 후에 INSERT 문, UPDATE 문, DELETE 문 등을 통해 테이블 행에 대한 작업을 수행할 때 실제로 처리된 행 수의 합계를 반환한다.

그러면 실습으로 추가/삭제/수정의 SQL 문에 의해 처리된 행의 총 수를 구하기 보기 위해 데이터베이스에 연결한다.

$ sqlite3 total_changes.sqlite3
SQLite version 3.19.3 2017-06-27 16:48:08
Enter ".help" for usage hints.
sqlite> 

다음과 같이 테이블을 만든다.

create table user (id integer, name text, address text);
sqlite> create table user (id integer, name text, address text);
sqlite> 

INSERT 문을 사용하여 1개의 데이터를 저장한다.

insert into user values (1, 'devkuma', 'Seoul');
sqlite> insert into user values (1, 'devkuma', 'Seoul');
sqlite> 

INSERT 문을 실행했기 때문에 total_changes 함수를 사용하여 지금까지 처리된 행수를 취득 해 본다.

select total_changes ();

데이터베이스 연결한 후에 데이터의 추가와 삭제가 이루어 행수는 1이므로 total_changes 함수는 1을 반환한다.

sqlite> .mode column
sqlite> .header on
sqlite> 
sqlite> select total_changes();
total_changes()
---------------
1              
sqlite> 

그러면 INSERT 문을 사용하여 추가로 7개의 데이터를 저장한다.

insert into user values (2, 'kimkc', 'Busan');
insert into user values (3, 'araikuma', 'Paju');
insert into user values (4, 'happykuma', 'Paju');
insert into user values (5, 'mykuma', 'Daejeon');
insert into user values (6, 'yourkuma', 'Seongnam');
insert into user values (7, 'raccoon', 'Suwon');
insert into user values (8, 'noguri', 'Suwon');
sqlite> insert into user values (2, 'kimkc', 'Busan');
sqlite> insert into user values (3, 'araikuma', 'Paju');
sqlite> insert into user values (4, 'happykuma', 'Paju');
sqlite> insert into user values (5, 'mykuma', 'Daejeon');
sqlite> insert into user values (6, 'yourkuma', 'Seongnam');
sqlite> insert into user values (7, 'raccoon', 'Suwon');
sqlite> insert into user values (8, 'noguri', 'Suwon');
sqlite> 

INSERT 문을 실행했기 때문에 total_changes 함수를 사용하여 지금까지 처리 된 행수를 얻어 본다.

select total_changes();

데이터베이스 연결 후 데이터의 추가와 삭제가 이루어 행수는 첫 번째 회 이외에 이번 7번의 INSERT 문을 실행하고 있기에 total_changes 함수는 8을 반환다.

total_changes 함수 사용 (6)
sqlite> select total_changes();
total_changes()
---------------
8              
sqlite> 

다음 UPDATE 문을 사용하여 일부 데이터를 수정한다.

update user set address = 'suwon' where address = 'Suwon';
sqlite> update user set address = 'suwon' where address = 'Suwon';
sqlite> 

이번에는 UPDATE 문에서 수정된 데이터의 수는 2이었기 때문에 데이터베이스 연결한 후에 데이터의 추가와 삭제가 이루어 행수는 지금까지 8회에 이번에 2회를 더해서 total_changes 함수는 10이 반환된다.

select total_changes();
sqlite> select total_changes();
total_changes()
---------------
10             
sqlite> 

이렇게 total_changes 함수를 사용하여 데이터베이스 연결한 후에 INSERT 문, UPDATE 문, DELETE 문에 의해 처리된 행의 총수를 받아올 수 있다.




최종 수정 : 2019-11-13