MySQL 和 SQL Server 表数据同步:高效插入缺失记录

本文将介绍如何判断 MySQL 表和 SQL Server 表,并在 MySQL 表中存在而 SQL Server 表中不存在的记录时,将这些记录插入到 SQL Server 表中。

步骤:

  1. 查询 MySQL 表中的所有记录的 ID 列表: 使用 MySQL 连接器获取 MySQL 表中所有记录的 ID,并存储在一个数组中。
  2. 查询 SQL Server 表中的所有记录的 ID 列表: 使用 SQL Server 连接器获取 SQL Server 表中所有记录的 ID,并存储在另一个数组中。
  3. 遍历 MySQL 表中的 ID 数组: 对每个 ID,检查它是否在 SQL Server 表的 ID 数组中。
  4. 如果 ID 不存在于 SQL Server 表的 ID 数组中: 执行插入操作,将该记录插入到 SQL Server 表中。

示例代码:

import mysql.connector
import pyodbc

# 连接 MySQL 数据库
mysql_db = mysql.connector.connect(
  host='localhost',
  user='root',
  password='password',
  database='test'
)

# 连接 SQL Server 数据库
sql_server_db = pyodbc.connect(
  'DRIVER={SQL Server};SERVER=server_name;DATABASE=db_name;UID=username;PWD=password'
)

# 查询 MySQL 表中所有记录的 ID 列表
cursor = mysql_db.cursor()
cursor.execute('SELECT id FROM table_name')
mysql_ids = [row[0] for row in cursor.fetchall()]

# 查询 SQL Server 表中所有记录的 ID 列表
cursor = sql_server_db.cursor()
cursor.execute('SELECT id FROM table_name')
sql_server_ids = [row[0] for row in cursor.fetchall()]

# 遍历 MySQL 表中的 ID 数组,对于每个 ID,检查它是否存在于 SQL Server 表的 ID 数组中
for id in mysql_ids:
  if id not in sql_server_ids:
    # 如果 MySQL 表中的 ID 在 SQL Server 表中不存在,则插入该记录
    cursor.execute('INSERT INTO table_name (id, column1, column2) VALUES (?, ?, ?)', (id, value1, value2))
    sql_server_db.commit()

# 关闭数据库连接
cursor.close()
mysql_db.close()
sql_server_db.close()

注意:

  • 将 table_name、column1、column2、value1、value2 替换为您的实际表名、列名和值。
  • 确保您已经安装了 mysql-connector-python 和 pyodbc 库。
  • 调整代码以适应您的具体数据库连接信息和数据结构。

通过以上步骤和代码示例,您可以轻松地将 MySQL 表中不存在于 SQL Server 表中的记录插入到 SQL Server 表中,从而实现两个数据库之间的数据同步,提高数据管理效率。


原文地址: https://www.cveoy.top/t/topic/nct1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录