要使用MySQL庫(kù)進(jìn)行事務(wù)管理,請(qǐng)遵循以下步驟:
mysql-connector-python
庫(kù)。要安裝它,請(qǐng)?jiān)诿钚兄羞\(yùn)行以下命令:pip install mysql-connector-python
import mysql.connector
from mysql.connector import Error
def create_conn():
try:
conn = mysql.connector.connect(
host='your_host',
user='your_username',
password='your_password',
database='your_database'
)
if conn.is_connected():
print("Connection to MySQL database was successful!")
return conn
except Error as e:
print(f"Error: {e}")
return None
def execute_query(conn, query):
try:
cursor = conn.cursor()
cursor.execute(query)
# 提交事務(wù)
conn.commit()
print("Query executed successfully!")
except Error as e:
# 發(fā)生錯(cuò)誤時(shí)回滾事務(wù)
conn.rollback()
print(f"Error: {e}")
def main():
conn = create_conn()
if conn is not None:
try:
# 創(chuàng)建表
create_table_query = """CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE
);"""
execute_query(conn, create_table_query)
# 插入數(shù)據(jù)
insert_query = "INSERT INTO users (name, email) VALUES (%s, %s);"
data = ("John Doe", "john.doe@example.com")
execute_query(conn, insert_query, data)
except Error as e:
print(f"Error: {e}")
finally:
if conn.is_connected():
conn.close()
print("Connection to MySQL database was closed.")
if __name__ == "__main__":
main()
在這個(gè)例子中,我們首先創(chuàng)建了一個(gè)連接到MySQL數(shù)據(jù)庫(kù)的函數(shù)create_conn()
。然后,我們創(chuàng)建了一個(gè)execute_query()
函數(shù),該函數(shù)執(zhí)行SQL查詢并使用事務(wù)處理。在main()
函數(shù)中,我們執(zhí)行了一組需要事務(wù)支持的SQL查詢,如創(chuàng)建表和插入數(shù)據(jù)。如果在執(zhí)行過(guò)程中發(fā)生錯(cuò)誤,事務(wù)將回滾以確保數(shù)據(jù)的一致性。