我正在尝试将我的用户名和密码哈希到我的SQLite数据库中,但我总是收到错误消息:SqliteError:NOT NULL约束失败:Users.id
此错误表示我的查询与我的Users表不匹配,但我找不到问题。
我的用户转储表:
CREATE TABLE IF NOT EXISTS "Users" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT,
"username" varchar(50) NOT NULL,
"hash" varchar(60) NOT NULL
);
我的节点代码:
var Database = require('better-sqlite3')
var db = new Database('db.sqlite')
var sql = 'INSERT INTO Users (username, hash) VALUES (?,?)'
db.prepare(sql).run(username, hash)
id字段设置为自动递增整数和主键,因此它应自动为每个新条目设置自己。 错误消息表明Users.id上的NOT NULL约束失败,但id甚至没有定义NOT NULL约束。
如果我改为使用命令
INSERT INTO Users (username, hash) VALUES ('testname','testhash1234');
直接在SQLite3数据库中一切正常。
我做错了什么或者这是更好的sqlite3中的错误? 我怎样才能解决这个问题呢?