Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonでMySQLデータベースへの挿入後にIDを取得する方法

MySQLのテーブルにデータを挿入するには、INSERT文を使用します。INSERT文でテーブルにデータを追加する際は、データベースのカラム定義と同じ順序で値を指定するか、あるいはカラム名を明示的に指定したうえでデータを渡す必要があります。

最後に挿入された行のIDを取得して表示するには、lastrowidを使用します。これは、直近に挿入された行のIDを取得するための特別な属性です。ただし、この機能を利用する前には、いくつかの前提条件を満たしている必要があります。

  • IDカラムがテーブルの主キー(PRIMARY KEY)として設定されていること
  • IDカラムが自動採番(AUTO_INCREMENT)になっていること

構文

cs.lastrowid

ここで「cs」はカーソルオブジェクトを指します。

PythonとMySQLで挿入行のIDを取得する手順

  1. MySQLコネクタをインポートする
  2. connect()メソッドでデータベースとの接続を確立する
  3. cursor()メソッドでカーソルオブジェクトを作成する
  4. テーブルへ行を挿入するINSERTクエリを作成する
  5. execute()メソッドでSQLクエリを実行する
  6. lastrowidを使って挿入された行のIDを取得する
  7. 接続を閉じる

例として、次のような「Students」テーブルが存在すると仮定します。

+--------+---------+-----------+------------+
|   id   |  Name   |   City    |   Marks    |
+--------+---------+-----------+------------+
|   1    |  Karan  | Amritsar  |     95     |
|   2    |  Sahil  | Amritsar  |     93     |
|   3    |  Kriti  |  Batala   |     88     |
|   4    |   Amit  |   Delhi   |     90     |
+--------+---------+-----------+------------+

実装例

上記のテーブルでは、IDカラムが主キーかつ自動採番に設定されています。ここに新しい行を挿入し、最後に挿入された行のIDを取得してみましょう。

import mysql.connector

db = mysql.connector.connect(
    host="your host",
    user="your username",
    password="your password",
    database="database_name"
)

cursor = db.cursor()

# テーブルに新しい行を挿入
query = "INSERT INTO Students VALUES(5, 'Priya', 'Amritsar', 90)"
cursor.execute(query)
db.commit()

# 挿入された行のIDを表示
print(cursor.lastrowid)

db.close()

出力結果

5

このように、cursorオブジェクトのlastrowid属性を参照するだけで、直前に挿入した行の自動採番IDを簡単に取得できます。新規レコード登録後に関連テーブルへの参照を保存したい場合などに非常に便利な機能です。

  1. Pythonで都市の緯度・経度を取得する方法|geopyライブラリの使い方を解説

    都市の緯度と経度を取得したい場合、Pythonではgeopyモジュールが便利です。geopyは、サードパーティ製のジオコーダやさまざまなデータソースを利用して、住所・都市・国などの座標情報を特定できるライブラリです。 まず、geopyモジュールがインストールされていることを確認しましょう。未インストールの場合は、以下のコマンドでインストールできます。 pip install geopy 以下の例では、Nominatimというジオコーダを使用して、都市「ハイデラバード(Hyderabad)」の緯度と経度を取得します。 手順 geopyモジュールからNominatimジオコーダをインポートします

  2. PythonとMatplotlibで点群の中心座標を取得・可視化する方法

    一連のポイント(点群)の中心を求めるには、リスト内のすべての要素を合計し、その合計値をリストの要素数(長さ)で割ります。この計算結果が、対応する各軸における中心座標となります。これはいわゆる「平均値」であり、点群の重心を表します。実装の手順データポイントとして x 座標と y 座標の2つのリストを作成します。plot() メソッドを使って、x および y のデータポイントをプロットします。x と y の各リストから、sum() と len() を組み合わせて中心座標のタプルを算出します。算出した中心点をグラフ上にプロットします。annotate() メソッドを使い、中心点に「center」とい