better-sqlite3 SqliteError:NOT NULL约束失败

时间:2018-02-20 16:58:28

标签: node.js sqlite

我正在尝试将我的用户名和密码哈希到我的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中的错误? 我怎样才能解决这个问题呢?

0 个答案:

没有答案