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

Python MySQLのrollback()メソッドとは何ですか?


rollback()メソッドは、データベーストランザクションを作成するために使用されるPythonのさまざまなメソッドの1つです。

ここでは、rollback()メソッドについて説明します。

rollback()メソッドは、データベースに対して行われた最後の変更またはコミットを元に戻すために使用されます。ユーザーがデータベースに加えられた変更に満足できないような条件が発生した場合、またはトランザクションが失敗した場合、rollback()メソッドが操作され、データベースを変更をコミットする前の元の状態に戻します。これは、トランザクションが失敗した場合にデータベースの整合性を維持するのに役立つため、非常に重要な方法です。

構文

db.rollback()

dbはデータベース接続オブジェクトを指します。

以下に、トランザクションが失敗した場合に変更を元に戻すためのrollback()の使用例を示します。

PythonでMySQLを使用して、テーブルで失敗したトランザクションをロールバック()する手順

  • MySQLコネクタをインポートする

  • connect()

    を使用してコネクタとの接続を確立します
  • cursor()メソッドを使用してカーソルオブジェクトを作成します

  • 更新クエリを実行して変更をコミットしてみてください

  • トランザクションが失敗した場合は、トランザクションをロールバックします

  • 接続を閉じます

次のコードは、STUDENTテーブルのInderという名前の学生のAGEを更新しようとします。トランザクションが成功した場合は更新が行われ、そうでない場合はトランザクションがロールバックされ、データベースが以前の状態に復元されます。

import mysql.connector
from mysql.connector import Error
from mysql.connector import errorcode

try:
   db = mysql.connector.connect(
      host ='localhost',
      database ='database_name',
      user ='user_name'
      password='your_password',
   )

   cs = db.cursor()
   query ="UPDATE STUDENT SET AGE = 23 WHERE Name ='Inder'"
   cs.execute(query)

   # commit changes to the database
   db.commit()

   # update successful message
   print("Database Updated !")

except mysql.connector.Error as error :
   # update failed message as an error
   print("Database Update Failed !: {}".format(error))

   # reverting changes because of exception
   db.rollback()

# Disconnecting from the database
db.close()

出力

トランザクションが成功した場合

Database Updated!

トランザクションが失敗した場合

Database Update Failed!

  1. MySQLデータベースの正しいDateTime形式は何ですか?

    MySQLデータベースの正しい日時形式は次のとおりです- ‘YYYY-MM-DD HH:M:SS’ まずテーブルを作成しましょう- mysql> create table DemoTable797 ( ArrivalDatetime datetime ); Query OK, 0 rows affected (0.68 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable797 values(NOW()); Query OK, 1 row affected (0.15

  2. データベース内のテーブルの数を表示するためのMySQLクエリとは何ですか?

    たとえば、ここではWEBデータベースを使用しています。データベースWEBでテーブルの数を見つける必要があります。これには、MySQLのINFORMATION_SCHEMA.TABLESを使用します。 以下は、テーブルの数を表示するためのクエリです- mysql> select count(table_name) as TotalNumberOfTablesInWebDatabase    -> from information_schema.tables    -> where table_schema='web';