Надеюсь, что название является разумным описанием.
У меня есть 2 таблицы в БД (sqlite).
CREATE TABLE files (
name TEXT,
sha256 TEXT,
fsno INT
);
CREATE TABLE sha256 (
sha256 TEXT,
fs1 INT,
fs2 INT,
fs3 INT,
fs4 INT
);
files.fsno варьируется от 2 до 5.
Я делаю:
INSERT OR IGNORE INTO sha256sums (sha256) select sha256 from files;
Тогда:
update sha256sums set fs2 = 1 where sha256 in (select sha256 from files where fsno = 2);
update sha256sums set fs3 = 1 where sha256 in (select sha256 from files where fsno = 3);
update sha256sums set fs4 = 1 where sha256 in (select sha256 from files where fsno = 4);
update sha256sums set fs5 = 1 where sha256 in (select sha256 from files where fsno = 5);
Есть ли способ заменить эти 4 обновления чем-то в INSERT OR IGNORE? Что-то вроде:
INSERT OR IGNORE INTO sha256sums (sha256, fs2, fs3, fs4, fs5)
select
sha256, fsno==2?1:0, fsno==3?1:0, fsno==4?1:0, fsno==5?1:0
from files;
БД - Sqlite.
TIA, Пит