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

PythonでMySQLのcommit()メソッドを使う方法とは?データベース変更の確定手順を解説

commit()メソッドは、Pythonでデータベーストランザクションを扱うためのメソッドの一つです。この記事では、commit()メソッドの役割と使い方について詳しく解説します。

commit()メソッドは、ユーザーがデータベースに対して行った変更を確定(コミット)するために使用されます。UPDATE文などのSQLステートメントを使ってデータベースに変更を加えた場合、その変更を確定する必要があります。もしcommit()メソッドを実行しないまま接続を閉じてしまうと、データベースは更新されず、変更内容は反映されません。

構文

db.commit()

ここで「db」は、connect()メソッドで作成したデータベース接続オブジェクトを指します。

以下では、テーブル内の値を更新し、その変更をデータベースにコミットする具体例を紹介します。

PythonとMySQLでテーブルのデータを更新・コミットする手順

  • mysql.connectorモジュールをインポートする

  • connect()メソッドを使ってデータベースとの接続を確立する

  • cursor()メソッドでカーソルオブジェクトを作成する

  • 適切なMySQLステートメントでクエリを作成する

  • execute()メソッドでSQLクエリを実行する

  • commit()メソッドで変更内容を確定する

  • 接続を閉じる

ここでは、次のような「Students」というテーブルがあると仮定します。

+----------+---------+-----------+------------+
|    Name  |   Class |    City   |    Marks   |
+----------+---------+-----------+------------+
|    Karan |    4    | Amritsar  |     95     |
|    Sahil |    6    | Amritsar  |     93     |
|    Kriti |    3    | Batala    |     88     |
|   Khushi |    9    | Delhi     |     90     |
|    Kirat |    5    | Delhi     |     85     |
+----------+---------+-----------+------------+

サンプルコード

上記の学生テーブルにおいて、Kritiさんの居住都市を「Batala」から「Kolkata」に更新し、その変更をデータベースにコミットしてみましょう。

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

cursor=db.cursor()

query="UPDATE Students SET City='Kolkata' WHERE Name='Kriti'"
cursor.execute(query)
db.commit()

query="SELECT * FROM Students"
cursor.execute(query)

for row in cursor:
    print(row)
db.close()

上記のコードでは、まずUPDATE文でKritiさんの都市名を更新し、続いてdb.commit()を実行することで、その変更をデータベースに確定しています。最後にSELECT文で全件を取得して結果を確認しています。

実行結果

('Karan', 4, 'Amritsar', 95)
('Sahil', 6, 'Amritsar', 93)
('Kriti', 3, 'Kolkata', 88)
('Khushi', 9, 'Delhi', 90)
('Kirat', 5, 'Delhi', 85)

実行結果を見ると、KritiさんのCityが「Batala」から「Kolkata」に正しく更新されていることがわかります。

注意点

上記のコードにおけるdb.commit()は非常に重要です。このメソッドによって、テーブルへの変更が確定されます。commit()を呼び出さない場合、たとえexecute()でクエリを実行しても、テーブルには一切変更が反映されません。INSERTやUPDATE、DELETEなどデータを変更する操作を行った際は、必ずcommit()を実行するようにしましょう。

  1. PythonのCGIとは?仕組みとサーバー設定方法をわかりやすく解説

    CGI(Common Gateway Interface:共通ゲートウェイインターフェース)は、HTTPサーバーなどの情報サーバーと外部のゲートウェイプログラムがやり取りするための標準規格です。現在のバージョンはCGI/1.1であり、CGI/1.2が策定中です。Webブラウジングの流れCGIの概念を理解するために、ハイパーリンクをクリックして特定のWebページやURLを閲覧するときに何が起こるのかを見てみましょう。ブラウザがHTTP Webサーバーに接続し、URL(つまりファイル名)を要求します。WebサーバーはURLを解析してファイル名を探します。該当するファイルが見つかればそれをブラウザへ

  2. Python Tkinterのafter()メソッドの使い方を徹底解説

    Tkinterは、PythonでGUIアプリケーションを作成するための標準ライブラリです。ウィンドウやボタン、ラベルなどのウィジェットを作成・操作するための組み込みメソッドが多数用意されており、データの表示やGUIイベントの処理を簡単に実装できます。本記事では、その中でも特に便利なafter()メソッドの使い方について、具体的なコード例とともに詳しく解説します。after()メソッドの基本構文.after(delay, FuncName=FuncName)このメソッドは、指定した遅延時間(ミリ秒単位)が経過した後に、引数として渡した関数FuncNameを呼び出します。タイマー処理や定期的な更新