繁体   English   中英

将表数据从MySQL数据库迁移到另一个MySQL数据库

[英]Migrating table data from a MySQL database to another MySQL database

我在理解其工作方式时遇到了一些麻烦。 我知道您可以通过一些工作台的工具轻松地将新数据库迁移到MySQL,但是我在这里要做的是从另一个数据库的表中获取某些数据,然后将其插入到我自己的数据库中。 问题是该另一个数据库没有相同的表或相同数量的数据。 有些对我没用,有些不适合我的桌子。

那么,一个人如何定期去做呢? 基本上,无论过去如何安排,我都需要可以捕获数据的东西并将其放入我的数据库中。 当程序不知道会发生什么时,听起来很难做到,所以基本上这是我的问题。 如果有人能指出我正确的方向,我将不胜感激。

不行吗 也许我错过了什么

-- First create your new table, avoid the columns that you don't care about.    
CREATE TABLE newTable......

-- select from the old table only the columns that you need and insert them in the new table
    INSERT INTO newTable(col1, col2, col3)
SELECT col1, col2, col3
FROM oldTable
WHERE .....

如果要合并多个列之间的数据,请使用CONCAT_WS

   INSERT INTO newTable(col1, col2, col3)
SELECT CONCAT_WS(' ', col1, col2) AS col1, col3
FROM oldTable
WHERE .....

您要执行的是导入程序。 我不确定那里是否有应用程序可以自动执行这种操作。

基本上,您编写了一个程序来连接到第一个数据库,提取数据,连接到第二个数据库,并从提取的数据生成insert语句。

这是一个可激发您灵感的简单python伪代码:

import mysql.connector

cnx = mysql.connector.connect(user='username', password='password',
                              host='127.0.0.1',
                              database='yourdatabase')
cnx2 = mysql.connector.connect(user='username2', password='password2',
                              host='127.0.0.1',
                              database='yourdatabase2')
cursor = cnx.cursor()
cursor.execute("SELECT * FROM ...")
for (data) in cursor:
  cursor2 = cnx2.cursor()
  cursor2.execute("INSERT INTO ...")       // Use the data variables
  cursor2.close()
cursor.close()
cnx.close()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM