Résumé des questions fréquemment posées sur l'importation de données Excel dans MySQL : Comment gérer la perte de données ?
Lors de l'importation de données de tableaux Excel vers une base de données MySQL, une perte de données est souvent rencontrée. Cela peut être dû à une incompatibilité de format de données, à une erreur de l'importateur ou à d'autres raisons. Ce qui suit décrit certains problèmes et solutions courants pour gérer les situations de perte de données et fournit des exemples de code correspondants.
Solution de contournement : avant d'importer des données, vérifiez le type de données dans le tableau Excel et convertissez les données au type correct si nécessaire. Vous trouverez ci-dessous un exemple de code pour importer des données d'un tableau Excel dans une base de données MySQL :
import pandas as pd import mysql.connector # 读取Excel表格数据 data = pd.read_excel("data.xlsx") # 连接MySQL数据库 conn = mysql.connector.connect(user='root', password='password', host='localhost', database='test') cursor = conn.cursor() # 创建数据库表 create_table_query = "CREATE TABLE IF NOT EXISTS data (id INT, name VARCHAR(255), age INT)" cursor.execute(create_table_query) # 插入数据 for index, row in data.iterrows(): insert_query = "INSERT INTO data (id, name, age) VALUES (%s, %s, %s)" values = (row['id'], row['name'], row['age']) cursor.execute(insert_query, values) # 提交事务并关闭连接 conn.commit() cursor.close() conn.close()
Solution : avant d'écrire le programme d'importation, vérifiez soigneusement la logique du code pour vous assurer qu'il n'y a pas d'erreurs. Lors de l'insertion de données, vous pouvez utiliser l'instruction try-sauf pour intercepter les exceptions et les gérer correctement. Voici un exemple de code pour gérer les exceptions lors de l'insertion de données :
import pandas as pd import mysql.connector # 读取Excel表格数据 data = pd.read_excel("data.xlsx") # 连接MySQL数据库 conn = mysql.connector.connect(user='root', password='password', host='localhost', database='test') cursor = conn.cursor() # 创建数据库表 create_table_query = "CREATE TABLE IF NOT EXISTS data (id INT, name VARCHAR(255), age INT)" cursor.execute(create_table_query) # 插入数据 try: for index, row in data.iterrows(): insert_query = "INSERT INTO data (id, name, age) VALUES (%s, %s, %s)" values = (row['id'], row['name'], row['age']) cursor.execute(insert_query, values) except Exception as e: print("插入数据错误:", str(e)) # 提交事务并关闭连接 conn.commit() cursor.close() conn.close()
Solution : Avant d'importer des données, vérifiez soigneusement les données dans le tableau Excel pour vous assurer que les données sont complètes et que les noms de champs sont cohérents avec ceux de la base de données MySQL. Si une interruption du réseau ou une autre situation anormale se produit pendant le processus d'importation, un mécanisme de transaction peut être utilisé pour garantir la cohérence des données. Voici un exemple de code pour importer des données à l'aide du mécanisme de transaction :
import pandas as pd import mysql.connector # 读取Excel表格数据 data = pd.read_excel("data.xlsx") # 连接MySQL数据库 conn = mysql.connector.connect(user='root', password='password', host='localhost', database='test') cursor = conn.cursor() # 创建数据库表 create_table_query = "CREATE TABLE IF NOT EXISTS data (id INT, name VARCHAR(255), age INT)" cursor.execute(create_table_query) # 开启事务 cursor.execute("START TRANSACTION") try: # 插入数据 for index, row in data.iterrows(): insert_query = "INSERT INTO data (id, name, age) VALUES (%s, %s, %s)" values = (row['id'], row['name'], row['age']) cursor.execute(insert_query, values) # 提交事务 cursor.execute("COMMIT") except Exception as e: # 回滚事务 cursor.execute("ROLLBACK") print("导入数据错误:", str(e)) # 关闭连接 cursor.close() conn.close()
En résumé, lors de l'importation de données d'un tableau Excel dans une base de données MySQL, nous devons faire attention à la correspondance des types de données, évitant ainsi les erreurs et le traitement du programme d'importation. Autres raisons possibles de perte de données. Nous espérons que les problèmes courants et les solutions proposés dans cet article pourront aider les lecteurs à mieux gérer les situations de perte de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!