replace аналогичен insert, он просто проверяет, есть ли дублирующий ключ и
удаляет строку и вставляет новую, в противном случае просто вставляет
вы можете сделать это, если есть, например, уникальный индекс (Имя, Тип) и если вы набрали следующую команду
REPLACE INTO table1 (Name,Type,InitialValue,FinalValue) VALUES ('A',3,50,90 )
и там уже существует строка с Name = 'A' и Type = 3, она будет заменена
http://www.sqlite.org/lang_createindex.html
CREATE UNIQUE INDEX idx_name_type ON table1(Name,Type)
EDIT:
быстрое примечание - ЗАМЕНА всегда УДАЛЯЕТ, а затем ВСТАВЛЯЕТ, так что никогда не стоит использовать его при большой нагрузке, потому что он требует монопольной блокировки при удалении и затем при вставке
некоторые из механизмов баз данных имеют
INSERT ... ON DUPLICATE KEY UPDATE ...
sqlite 3 нет, но вы можете попробовать {} перехватить, если вставка не удалась
http://blog.client9.com/2007/11/sqlite3-and-on-duplicate-key-update.html
SQLite UPSERT - ОБНОВЛЕНИЕ КЛЮЧЕВОГО КЛЮЧА