我需要将数据从一个数据库迁移到另一个数据库,两者都在同一台本地系统上。
表和列的名称不同,我不必迁移旧数据库中的所有列,所以
Select * 对我无效。
INSERT INTO newDatabase.table1(Column1, Column2); SELECT oldDatabase.table1(column1, column2) FROM oldDatabase.table1
但是我得到了一个 #1064 - 语法错误
我的查询中有什么错误,我该如何修复?
提前感谢
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
如果您想将数据复制到不同数据库的相同表中。
您的查询应该是这样的:
更新
由于这个答案引起了比我预期的更多的关注,我应该对这个答案进行扩展。首先,从答案本身可能不明显,但是列名不需要相同。所以,以下也可以工作(假设列在各自的表中存在):
此外,它们甚至不需要是表中的真实列。我经常使用的一个转换数据的示例之一是:
所以,现在可能更明显的规则是,只要SELECT查询返回与INSERT查询所需的列数相同的列,它就可以用于VALUES的位置。