我有一个像这样的列的表:
FOREIGN KEY("StorageFk") REFERENCES "Storage"("StoragePk") ON DELETE RESTRICT
当我使用“DB Browser(SQLite)”时,我无法删除这个外键引用的行,这就是我想要的。但是,当我在node.js应用程序中运行此查询时:
DELETE FROM Storage WHERE StoragePk is $1
($ 1是占位符)该行被删除。当我打开数据库浏览器之后,它通知我一些外键指向一个不存在的行。
这怎么可能?
我的完整代码是这样的:
db.run('DELETE FROM Storage WHERE StoragePk is ?', storageId, function (err) {
const changes = this.changes;
db.close(() => {
if (err) {
reject(err);
}
else if (!changes) {
reject(`Could not find Storage with id ${storageId}.`);
}
else {
resolve('OK');
}
});
});
当我将其称为引用行的storageId
时,这会解析为'OK'。