データベース接続後に実行されたSQL文により更新/削除/追加された行数のトータルを取得(total_changes関数)

広告
eyecatch

total_changes 関数を使うと、データベースに接続後に実行された SQL 文による更新や削除された行数のトータルを取得することができます。ここでは total_changes 関数の使い方について解説します。

なお直近の SQL 文による更新や削除された行数を取得するには「直近に実行されたSQL文により更新/削除/追加された行数を取得(changes関数)」を参照してください。

total_changes関数の使い方

total_changes 関数はデータベースに接続後に追加/削除/更新のSQL文によって処理された行数のトータル数を取得するために使用します。書式は次の通りです。

total_changes()

データベースに接続後に INSERT 文、 UPDATE 文、 DELETE 文などによってテーブルの行に対する処理が行われた時、実際に処理された行数のトータルを返します。

-- --

それでは実際に試してみます。データベースに接続します。

total_changes関数の使い方(1)

次のようなテーブルを作成しました。

create table staff(id integer, name text, address text);

total_changes関数の使い方(2)

INSERT 文を使って 1 つデータを格納します。

insert into staff values(1, 'Yamada', 'Tokyo');

total_changes関数の使い方(3)

INSERT 文を実行したので total_changes 関数を使ってこれまでに処理された行数を取得してみます。

select total_changes();

データベース接続後にデータの追加や削除が行われた行数は 1 なので、 total_changes 関数は 1 を返します。

total_changes関数の使い方(4)

それでは INSERT 文を使ってさらに 6 つデータを格納します。

insert into staff values(2, 'Suzuki', 'osaka');
insert into staff values(3, 'Endou', 'Tokyo');
insert into staff values(4, 'Honda', 'Nagoya');
insert into staff values(5, 'Nishi', 'osaka');
insert into staff values(6, 'Harada', 'Tokyo');
insert into staff values(7, 'Egawa', 'Nagoya');

total_changes関数の使い方(5)

INSERT 文を実行したので total_changes 関数を使ってこれまでに処理された行数を取得してみます。

select total_changes();

データベース接続後にデータの追加や削除が行われた行数は、最初の 1 回に加えて今回 6 回 INSERT 文を実行しているので total_changes 関数は 7 を返します。

total_changes関数の使い方(6)

-- --

次に UPDATE 文を使って一部のデータを更新します。

update staff set address = 'Osaka' where address = 'osaka';

total_changes関数の使い方(7)

今回の UPDATE 文で更新されたデータの数は 2 だったので、データベース接続後にデータの追加や削除が行われた行数はこれまでの 7 回に今回の 2 回を加えて total_changes 関数は 9 を返します。

select total_changes();

total_changes関数の使い方(8)

このように total_changes 関数を使うことでデータベース接続後に INSERT 文、 UPDATE 文、 DELETE 文によって処理された行数のトータルを取得することができます。

-- --

total_changes 関数の使い方について解説しました。

SQLite入門の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。