【发布时间】:2017-04-22 21:47:10
【问题描述】:
我有一个 mysql .sql 文件,我正在尝试使用 sqlite 内存数据库进行测试,使用相同的文件。
如果用户不存在则创建表 ( user_id INTEGER PRIMARY KEY AUTO_INCREMENT,
导入时出现错误
- SQLITE_ERROR:靠近“AUTO_INCREMENT”:语法错误
在 SQLite 中,声明为 INTEGER PRIMARY KEY 的列将自行自动递增。去掉 AUTOINCREMENT 关键字,然后试试。
我无法删除 AUTOINCREMENT,因为它是 mysql 所必需的。有什么建议吗?
【问题讨论】:
-
尝试手动为多个数据库创建 SQL 令人抓狂,而且您最终会使用最小公分母。出于这个和其他原因,您最好使用 SQL 生成器库,一个好的生成器库会为您处理 SQL 方言。例如,Javascript 有Knex.js。
-
@Schwern 我们已经在使用 Knew。我们拥有的一个 SQL 文件是在应用程序第一次启动时创建架构的文件。也许我们也应该为此迁移到 Knex。