У меня есть таблица с таким столбцом:
FOREIGN KEY("StorageFk") REFERENCES "Storage"("StoragePk") ON DELETE RESTRICT
Когда я использую «Браузер БД (SQLite)», я не могу удалить строку, на которую ссылается этот внешний ключ, что я и хочу. Однако, когда я запускаю этот запрос в моем приложении node.js:
DELETE FROM Storage WHERE StoragePk is $1
($ 1 - заполнитель), строка удаляется. Когда я открываю DB Browser после этого, он сообщает мне, что некоторые внешние ключи указывают на несуществующую строку.
Как это возможно?
Мой полный код:
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');
}
});
});
Это разрешает 'OK', когда я называю это storageId
строки, на которую есть ссылка.