【发布时间】:2020-02-01 16:08:41
【问题描述】:
我正在使用 SQLite3 和 NodeJs 创建一个 sha256 哈希表 尝试插入整数和随机哈希时,出现以下错误。
{ Error: SQLITE_ERROR: no such column: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 errno: 1, code: 'SQLITE_ERROR' }
这是创建数据并将数据插入表的来源
// * Create ~ Open Hashes Database
let db = new sqlite3.Database('./hashes.db', sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE, (e => {
if (e) {
console.log('Failed to open/create hashes database')
}
console.log('Successfully opened / created')
}));
const hash = crypto.createHash('sha256').digest('hex');
// * 1 Create Database
db.run("CREATE TABLE hashes(seq INTEGER PRIMARY KEY, hash VARCHAR(255) NOT NULL)", (e) => {
if (e) return console.log(e);
console.log('Created database')
});
db.run(`INSERT INTO hashes VALUES (1, ${hash})`, (e) => {
if (e) return console.log(e);
console.log("successfully inserted", 1, hash);
})
第 1 列 (Seq) 只是一个顺序递增的整数 (1,2,3....) 第二列是 VARCHAR 类型的哈希。
【问题讨论】:
-
这个错误发生在表已经创建的时候?
-
是的,它发生在创建表之后
-
建表后是否只执行了数据插入部分没有建表部分?
-
是的。如果我只运行插入代码,它会抛出该错误。只是为了澄清起见,错误中的哈希只是该运行期间刚刚生成的哈希 - 因为我使用的是 crypto.createHash()
-
试试
INSERT INTO hashes VALUES (1, "${hash}")