当前位置: 首页 > 知识库问答 >
问题:

php - 将数据库中指定的用户数据迁移到另外一个库?

谷星文
2023-05-05

mysql 5.5 ,将数据库中指定的用户数据迁移到另外一个库,不保留主键,并更新关联主键字段。如:article 表的id迁移到新库的时候是重新生成的自增id,同时需要更新article_item表中的article_id为新的记录。大概有80张表,有什么比较好比较便捷的方法吗?

共有1个答案

邵飞鸿
2023-05-05

1.先备份原始数据
2.用python脚本来实现:

import pymysql

# 连接到原始数据库和新数据库
src_conn = pymysql.connect(host='src_host', user='src_user', password='src_password', db='src_db')
dst_conn = pymysql.connect(host='dst_host', user='dst_user', password='dst_password', db='dst_db')

# 获取原始数据
src_cursor = src_conn.cursor()
src_cursor.execute("SELECT field1, field2, field3 FROM src_table")
data = src_cursor.fetchall()

# 插入数据到新数据库并记录新旧主键映射关系
dst_cursor = dst_conn.cursor()
id_mapping = {}
for row in data:
    dst_cursor.execute("INSERT INTO dst_table (field1, field2, field3) VALUES (%s, %s, %s)", row)
    new_id = dst_cursor.lastrowid
    old_id = row[0]  # 假设 field1 是原始主键
    id_mapping[old_id] = new_id

# 更新关联字段
for old_id, new_id in id_mapping.items():
    dst_cursor.execute("UPDATE related_table SET related_field = %s WHERE related_field = %s", (new_id, old_id))

# 提交更改并关闭连接
dst_conn.commit()
src_conn.close()
dst_conn.close()
 类似资料:
  • move key db-index 返回1成功。0 如果key不存在,或者已经在指定数据库中

  • 问题内容: 如何从一个数据库复制到另一个数据库。 数据库名称visco 我想将所有表从visco数据库复制到新数据库名称作为neptune 我创建了一个没有任何表的数据库,然后尝试从database1.bak文件还原数据库,然后显示错误为 需要查询帮助 问题答案: 使用SQL Server Management Studio: 选项1 ->右键单击要复制的数据库 ->选择“任务”>“生成脚本” -

  • 本文向大家介绍php实现redis数据库指定库号迁移的方法,包括了php实现redis数据库指定库号迁移的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php实现redis数据库指定库号迁移的方法,分享给大家供大家参考。具体如下: redis普通的数据库迁移,只能整个redis save,或者利用主从,当然也可以安装一个redis-dump,不过比较麻烦,这里提供一种php的脚本,实

  • 问题内容: 我正在使用Java开发数据库迁移工具。该工具将数据库表及其数据复制到目标数据库。但是我希望它可以在不同的数据库上工作。从mysql复制并在derby等中创建。使用JDBC,我们可以收集有关表及其列的足够信息。但是我要问的是,是否可以使用sql free在Java上重新创建表。我的意思是不同的数据库具有不同的数据类型,有时它们在sql语法上也有所不同。那么JDBC或任何其他库(可以是开放

  • 在开发和维护一个数据库驱动的应用程序时, 数据库的结构会像代码一样不断演变。 例如,在开发应用程序的过程中,会增加一张新表且必须得加进来; 在应用程序被部署到生产环境后,需要建立一个索引来提高查询的性能等等。 因为一个数据库结构发生改变的时候源代码也经常会需要做出改变, Yii 提供了一个 数据库迁移 功能,该功能可以记录数据库的变化, 以便使数据库和源代码一起受版本控制。 如下的步骤向我们展示了

  • 简介 迁移就像是数据库的版本控制, 允许团队简单轻松的编辑并共享应用的数据库表结构,迁移通常和 Laravel 的 数据库结构生成器配合使用,让你轻松地构建数据库结构。如果你曾经试过让同事手动在数据库结构中添加字段,那么数据库迁移可以让你不再需要做这样的事情。 Laravel 的 Schema 门面 对所有 Laravel 支持的数据库系统提供了创建和操作数据表的相应支持。 生成迁移 使用 Art