我有一张桌子,上面有这样一列:
FOREIGN KEY("StorageFk") REFERENCES "Storage"("StoragePk") ON DELETE RESTRICT
当我使用“数据库浏览器(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'。