SQLite | SQLite 함수 | 최근 실행된 SQL 문에 의해 수정/삭제/추가된 행수 구하기 (changes 함수)

changes 함수를 사용하면 최근 실행된 SQL 문에 의한 수정과 삭제된 행수를 얻을 수 있다. 여기에서는 changes 함수의 사용법에 대해 설명한다.

여기서 데이터베이스 연결한 후 SQL 문장에 의한 수정 또는 삭제된 행수의 합계를 구하려려면 데이터베이스 연결 후 실행된 SQL 문에 의해 수정/삭제/추가 된 행의 총수를 취득 (total_changes 함수)을 참조한다.

changes 함수 사용법

changes 함수는 최근의 SQL문에 의해 행의 추가/삭제/수정한 처리된 행수를 얻는데 사용한다. 형식은 다음과 같다.

changes()

INSERT 문, UPDATE 문, DELETE 문에 의해 테이블의 행에 대한 작업을 수행할 때 실제로 처리된 행수를 돌려준다.

그러면 실습을 해보도록 하겠다. 먼저 다음과 같이 테이블을 만든다.

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

INSERT 문을 사용하여 다음과 같이 데이터를 포함하고 있다.

insert into user values (1, 'devkuma', 'Seoul');
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 (1, 'devkuma', 'Seoul');
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 문을 실행했기 때문에 changes 함수를 사용하여 최근에 처리 된 행 수를 가져보십시오.

select changes();

INSERT 문은 여러 번 실행되었지만, 최근 발생한 데이터를 하나를 추가한 것 뿐이므로 changes 함수는 1이 반환된다.

sqlite> create table user (id integer, name text, address text);
sqlite> 
sqlite> insert into user values (1, 'devkuma', 'Seoul');
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> 
sqlite> select changes();
1
sqlite> 

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

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

이번 UPDATE 문에서 수정된 데이터의 수는 2 이었기 때문에 changes 함수는 2를 반환한다.

select changes();
sqlite> update user set address = 'suwon' where address = 'Suwon';
sqlite> 
sqlite> select changes();
2
sqlite> 

다음은 DELETE 문을 사용하여 일부 데이터를 삭제한다.

delete from user where address = 'Paju';
sqlite> delete from user where address = 'Paju';
sqlite> 

이번에는 DELETE 문에서 삭제된 데이터의 수는 2이었기 때문에 changes 함수는 2을 반환한다.

select changes ();
sqlite> delete from user where address = 'Paju';
sqlite> 
sqlite> select changes();
2

이렇게 changes 함수를 사용하여 INSERT 문, UPDATE 문, DELETE 문에 의해 처리된 행수를 얻을 수 있다.




최종 수정 : 2019-11-13