如何将sql“dump”文件加载到sql炼金术中

时间:2010-05-13 03:23:29

标签: python sql sqlalchemy

我有一个大的sql转储文件...包含多个CREATE TABLEINSERT INTO语句。有没有办法将这些全部加载到SQLAlchemy sqlite数据库中。我计划在创建表后使用来自sqlsoup的内省ORM。但是,当我使用engine.execute()方法时,它会抱怨:sqlite3.Warning: You can only execute one statement at a time.

有没有办法解决这个问题。也许用正则表达式或某种解析器拆分文件,但我不知道足够的SQL来获取正则表达式的所有情况。

非常感谢任何帮助。

威尔

编辑: 因为这看起来很重要......转储文件是用MySQL数据库创建的,所以它有很多命令/语法,sqlite3无法正确理解。

2 个答案:

答案 0 :(得分:1)

“或某种解析器”
我发现MySQL是MySQL转储文件的一个很好的解析器:) 你自己说:“所以它有相当多的命令/语法,sqlite3无法正确理解。”显然,SQLite不是执行此任务的工具 至于你的特殊错误:没有上下文(即追溯),我无能为力。 Martelli或Skeet可能跨越时空,阅读你的翻译,但我,不是那么多。

答案 1 :(得分:0)

MySQL识别的SQL和SQLite中的SQL 相当不同。我建议单独转储每个表的数据,然后将数据加载到SQLite中的等效表中。

使用原始转储文件中给出的“CREATE TABLE”命令的子集手动在SQLite中创建表。

相关问题