将单行从 SQLite 导入到 MySQL?

将单行从 SQLite 导入到 MySQL?

我需要一次又一次地从 SQLite 3 数据库到 MySQL 数据库进行某种增量导入。两个数据库中的列名称相同。有没有一种好方法可以通过脚本来做到这一点(因此有没有一种好方法可以将一行的列值作为某种数组/列表获取,这样我就可以真正使用它们?)或者我最好使用小C程序?

更新:好的,有 -line 选项,每行给出一个列值,然后结果行用空行分隔。仍然需要找到一种非常简单的方法来解析它;-)

答案1

#!/bin/bash

sqlite test.db  "select * from tablename" > /tmp/dump.sql

mysql -uroot -ppassword  databasename <<EOF
load data infile '/tmp/dump.sql'
into table tablename
fields terminated by '|'
escaped by '\\\'
lines terminated by '\n';
EOF

答案2

我已经使用适配器在 PHP 中编写了这样的东西,我们所做的一件事是创建一个 sys_parsed 标志来标记已导入(或失败)的内容。基本上保持跟踪,这样您就不会最终尝试永远无法工作的导入。

它解析数千个 sqlite 文件并将其导入到单个 mysql 数据库中,每个客户都有一个表。但它绝对不是15班轮。如果您想要可靠的进口产品,还有更多的事情要做。它的性能也相当好,负载不是很大。

如果您感兴趣,我可以看一下,看看是否可以分享(为客户编写)

相关内容