是否可以将具有不同列名的相关数据从一个数据库迁移到另一个数据库?我在这里谈论非常大量的数据。有人有想法吗?我尝试将其导出到 CSV 并导入到其他数据库,但我收到错误消息:
invalid column count in CSV input in line 1
因此,如果有人有有效的方法来做到这一点,请分享。或者,如果有人可以通过excel中的这个CSV映射指导mo如何正确地做到这一点,我将不胜感激
是否可以将具有不同列名的相关数据从一个数据库迁移到另一个数据库?我在这里谈论非常大量的数据。有人有想法吗?我尝试将其导出到 CSV 并导入到其他数据库,但我收到错误消息:
invalid column count in CSV input in line 1
因此,如果有人有有效的方法来做到这一点,请分享。或者,如果有人可以通过excel中的这个CSV映射指导mo如何正确地做到这一点,我将不胜感激
这其中有两种情况:
您只需要在目标表中插入数据:
insert into dbDestination.tblDestination (field1, field2, ...)
select ...
from dbSource.tblSource
笔记
select
语句必须包含您需要复制到目标表的字段。select
字段列表中指定的字段顺序相同insert
我会将数据导出到纯文本文件,然后将其导入。我个人更喜欢 .csv 文件,但这取决于你。
您有两种可能:使用select... into outfile
或使用系统终端(命令窗口)。
一个。使用select... into outfile
和load data
在服务器中dbSource
是:
select ...
from dbSource.tblSource
into outfile [your destination file]
...
将文件复制到目标服务器。
在服务器中dbDestination
是:
加载数据本地 infile [您的文件] ...
笔记
select
字段列表中指定的字段顺序相同insert
select... into outfile
和load data...
湾。使用终端
在 Linux(或其他 Unix 系统)中,打开终端窗口并输入以下命令:
$ mysql -h [sourceServer] -u [yourUser] -p[yourPassword] dbSource -e"select ..." | sed 's/\t/,/g' > yourDestinationFile.csv
将文件复制到目标服务器
启动 MySQL 控制台,并使用 `load data ...`
笔记
select
字段列表中指定的字段顺序相同insert
| sed 's/\t/,/g'
部分将 mysql 查询的输出转换为 .csv 文件。您可以使用另一个分隔符代替,
. 有关sed
检查http://lowfatlinux.com/linux-sed.html的进一步参考ignore 1 lines
末添加即可。load data...
将数据从一个数据库复制到另一个数据库是一项非常简单的任务。希望这能为您指明正确的方向。
一个忠告:下载你的 MySQL 版本的参考手册并随身携带。您可以在那里找到大部分解决方案。
一个简单的方法是使用以下语法:
INSERT INTO Database.Table(field 1, field 2,...)
SELECT * FROM Database2.Table2;
谨防!!!
INSERT INTO dbname.tablename(fields...);
SELECT * FROM olddatabase.oldtable;
只有在 id 跟随时才会起作用。
选择省略 ID 的字段,以便自动增量可以为导入的行提供新的 ID。
用这个:
INSERT INTO dbname.tablename(fields...);
SELECT * FROM olddatabase.oldtable;