Не мога да разбера как да заявя SQLite. необходимо: 1) Заменете записа (първичния ключ), ако условието (сравнение на нови и стари записи в полета) 2) Вмъкнете запис, ако такъв запис не съществува в базата данни на първичния ключ.
Важното е, че трябва да работи много бързо! Не мога да изляза с ефективно запитване.
Редактиране.
MyInsertRequest - желаният израз.
Скрипт:
CREATE TABLE testtable (a INT PRIMARY KEY, b INT, c INT)
INSERT INTO testtable VALUES (1, 2, 3)
select * from testtable
1|2|3
-- Adds an entry, because the primary key is not
++ MyInsertRequest VALUES (2, 2, 3) {if c>4 then replace}
select * from testtable
1|2|3
2|2|3
-- Adds
++ MyInsertRequest VALUES (3, 8, 3) {if c>4 then replace}
select * from testtable
1|2|3
2|2|3
3|8|3
-- Does nothing, because such a record (from primary key field 'a')
-- is in the database and none c>4
++ MyInsertRequest VALUES (1, 2, 3) {if c>4 then replace}
select * from testtable
1|2|3
2|2|3
3|8|3
-- Does nothing
++ MyInsertRequest VALUES (3, 34, 3) {if c>4 then replace}
select * from testtable
1|2|3
2|2|3
3|8|3
-- replace, because such a record (from primary key field 'a')
-- is in the database and c>2
++ MyInsertRequest VALUES (3, 34, 1) {if c>2 then replace}
select * from testtable
1|2|3
2|2|3
3|34|1
VALUES (1, 2, 1)
? Не мога да разбера критерии! Това ли е: добавете новa
, заменете, когатоa
съвпада иnew.c
е по-малко отold.c
, не правете нищо друго? - person LS_ᴅᴇᴠ   schedule 29.08.2013