我有一个很大的sql转储文件...使用多个CREATE TABLE和INSERT INTO语句。有没有办法一次把所有这些都加载到一个SQLAlchemy sqlite数据库中。我计划在创建表之后使用来自sqlsoup的内省ORM。但是,当我使用engine.execute()方法时,它会报错:sqlite3.Warning: You can only execute one statement at a time.
有没有办法解决这个问题。也许使用regexp或某种解析器拆分文件,但我不了解足够的SQL,无法获得regexp的所有用例。
任何帮助都将不胜感激。
将要
编辑:既然这看起来很重要...转储文件是用MySQL数据库创建的,因此它有很多sqlite3不能正确理解的命令/语法。
发布于 2010-05-14 00:41:32
“或者某种解析器”
我发现对于MySQL转储文件,MySQL是一个很棒的解析器:)
您自己说过:“所以它有相当多的命令/语法是sqlite3不能正确理解的。”显然,SQLite不是完成这项任务的工具。
至于你的特殊错误:没有上下文(即回溯),我就无话可说了。马尔泰利或斯基特或许能跨越时空,读懂你的译员的心思,但我,就没那么多了。
发布于 2010-05-14 00:46:27
MySQL识别的SQL与SQLite中的SQL有很大的不同。我建议单独转储每个表的数据,然后将数据加载到SQLite中的等价表中。
使用原始转储文件中给出的"CREATE TABLE“命令的子集,在SQLite中手动创建表。
https://stackoverflow.com/questions/2824244
复制相似问题