gpt4 book ai didi

MySQL从一个数据库插入另一个数据库

转载 作者:IT老高 更新时间:2023-10-28 23:46:16 25 4
gpt4 key购买 nike

我需要将数据从一个数据库迁移到另一个数据库,两者都在同一个本地系统上。

表和列的名称不同,我不能从旧数据库中迁移所有列,所以

Select * 对我不起作用。

INSERT INTO newDatabase.table1(Column1, Column2);
SELECT oldDatabase.table1(column1, column2) FROM oldDatabase.table1

但我得到的只是一个#1064 - Syntax Error

我的查询中有什么错误,我该如何解决?

提前致谢

最佳答案

您的查询应该是这样的:

INSERT INTO newDatabase.table1 (Column1, Column2) 
SELECT column1, column2 FROM oldDatabase.table1;

更新

由于这个答案比我预期的更受关注,我应该扩展这个答案。首先,从答案本身可能并不明显,但列不需要具有相同的名称。因此,以下也将起作用(假设列存在于它们各自的表中):

INSERT INTO newDatabase.table1 (Column1, Column2) 
SELECT SomeOtherColumn, MoreColumns FROM oldDatabase.table1;

此外,它们甚至不需要是表中的真实列。我经常使用的数据转换示例之一是:

INSERT INTO newDatabase.users (name, city, email, username, added_by) 
SELECT CONCAT(first_name, ' ', last_name), 'Asgard', CONCAT(first_name,'@gmail.com'), CONCAT(first_name,last_name), 'Damir' FROM oldDatabase.old_users;

因此,现在可能更明显了,规则是,只要 SELECT 查询返回与 INSERT 查询所需的相同数量的列,它就可以用来代替 VALUES。

关于MySQL从一个数据库插入另一个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22912167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com