Pythonのsqlite3のメソッド lastrowid

Pythonのsqlite3モジュールのlastrowid属性は、直前のINSERTクエリによって挿入された行の中で最後に挿入された行の行ID(自動増分キーの値)を取得するために使用されます。

lastrowid属性はカーソルオブジェクトに関連付けられており、INSERT文を実行した後にその属性を使用して最後に挿入された行の行IDを取得できます。ただし、lastrowid属性はSQLiteデータベースのテーブルに自動増分キー(通常はINTEGER PRIMARY KEY)が存在する場合にのみ有効です。自動増分キーがないテーブルでは、lastrowid属性は0を返します。

以下は、lastrowid属性の基本的な使用法の例です:

python
import sqlite3 # SQLiteデータベースに接続 connection = sqlite3.connect('mydatabase.db') # カーソルを取得 cursor = connection.cursor() # テーブルを作成 cursor.execute("CREATE TABLE IF NOT EXISTS mytable (id INTEGER PRIMARY KEY, name TEXT)") # データを挿入 cursor.execute("INSERT INTO mytable (name) VALUES (?)", ("John Doe",)) # 最後に挿入された行の行IDを取得 last_inserted_id = cursor.lastrowid # カーソルを閉じる cursor.close() # データベース接続をコミット connection.commit() # データベース接続を閉じる connection.close() # 最後に挿入された行の行IDを表示 print(f"Last inserted row ID: {last_inserted_id}")

この例では、INSERTクエリを実行して新しい行を挿入し、lastrowid属性を使用して最後に挿入された行の行IDを取得しています。行IDは通常、自動増分キーを持つテーブルでのみ使用されます。

lastrowid属性は、新しい行の行IDを取得する際に非常に便利であり、データベース内で一意の識別子を使用する場合に役立ちます。

未分類

Posted by ぼっち