2017-08-02 127 views
1

现在,我有两个不同的数据库表,也就是不同的表结构,众所周知,这是两个相同的项目,将其命名为新旧,旧项目有一些用户模块,它已经有一些用户数据,如何导出旧用户表数据并导入新用户表数据。有工具或PHP代码可以做到这一点?更多的模块会这样做。不同表结构中的mysql数据同步

谢谢。

回答

1

您可以使用SQL INSERT INTO SELECT如:

INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country) 
SELECT SupplierName, ContactName, Address, City, PostalCode, Country FROM Suppliers; 

上面的例子是在同一个模式两个表。如果您的表格处于单独的模式中,则应该在查询中添加预先修复的schema_name.table_name。 参考:https://www.w3schools.com/sql/sql_insert_into_select.asp

+0

如果这些表有关系,比如我插入到用户表中的一行,那么我需要这个自动递增的id来充当uid,子表需要这个uid和一些其他的旧数据变成排,怎么办?换句话说,我可以直接使用旧的uid插入新的用户表,也许这不是个好主意。 – Carey

+0

@Carey:据我所知,你想把旧桌子的UID移到新桌子。在这种情况下,您可以直接使用旧的uid插入新用户表。另一方面,您可以为自动增量的新表创建id,并为旧表数据创建uid。 –