如何将sql“转储”文件加载到sql alchemy中
我有一个很大的 SQL 导出文件,里面有很多 CREATE TABLE
和 INSERT INTO
的语句。我想知道有没有办法一次性把这些都加载到一个 SQLAlchemy 的 SQLite 数据库里。我打算在创建好表之后,使用 sqlsoup
的 ORM。不过,当我用 engine.execute()
方法时,它报错说:sqlite3.Warning: 你只能一次执行一个语句。
有没有什么办法可以解决这个问题?也许可以用正则表达式把文件拆分开,或者用某种解析器,但我对 SQL 了解得不够,无法处理所有正则表达式的情况。
任何帮助都将非常感激。
威尔
编辑:因为这似乎很重要……这个导出文件是用 MySQL 数据库创建的,所以里面有很多 SQLite3 不理解的命令和语法。
2 个回答
0
MySQL和SQLite使用的SQL语言其实差别很大。我建议你先把每个表的数据单独导出,然后再把这些数据导入到SQLite中对应的表里。
在SQLite中手动创建表,使用你导出的文件里“CREATE TABLE”命令的一部分。
2
“或者某种解析器”
我发现MySQL对于MySQL转储文件来说是个很好的解析器 :)
你自己也说了:“所以它有很多sqlite3无法正确理解的命令/语法。”很明显,SQLite不适合这个任务。
至于你提到的具体错误:没有上下文(比如错误追踪信息),我也没法说什么。Martelli或者Skeet可能能跨越时间和空间,读懂你解释器的想法,但我就没这个本事了。