Sqlite 未知sql(ite)语法错误
为什么下面是无效的,我在这里不知所措Sqlite 未知sql(ite)语法错误,sqlite,Sqlite,为什么下面是无效的,我在这里不知所措 'CREATE TABLE IF NOT EXISTS Mons(id int PRIMARY KEY NOT NULL AUTO_INCREMENT, keyword VARCHAR(255) NOT NULL);' 来自node.js的sqlite3,在coffeescript中为: db.parallelize( () -> db.run('CREATE TABLE IF NOT EXISTS Mons(id int PRIMARY K
'CREATE TABLE IF NOT EXISTS Mons(id int PRIMARY KEY NOT NULL AUTO_INCREMENT, keyword VARCHAR(255) NOT NULL);'
来自node.js的sqlite3,在coffeescript中为:
db.parallelize( () ->
db.run('CREATE TABLE IF NOT EXISTS Mons(id int PRIMARY KEY NOT NULL AUTO_INCREMENT, keyword VARCHAR(255) NOT NULL);')
)
确切错误:
Error: SQLITE_ERROR: near "AUTO_INCREMENT": syntax error
at Error (native)
sqlite中自动增量主键的语法为
INTEGER PRIMARY KEY AUTOINCREMENT
而不是
int PRIMARY KEY NOT NULL AUTO_INCREMENT
如果省略
AUTOINCREMENT
关键字,结果会略有不同。使用AUTO\u INCREMENT不是最好的主意,除非您希望在数据库的生命周期中使用唯一的键。如果删除记录,则该id将无法再次使用。此约束将降低数据库速度并使用更多内存,因此如果您不需要唯一的键,我建议删除此约束,因为主键已经具有抵抗任何相同主键的约束。sqlite(现在填充此注释)