Хорошо, так что у нас есть приложение PhoneGap с установкой таблицы какВставка только если идентификатор не существует
tblTest (actualid INTEGER PRIMARY KEY, id INTEGER, name TEXT)
actualid является уникальным идентификатором для устройства и идентификатора сохраняется на сервере боковая база данных. У нас были проблемы с веб-службами, возвращающими повторяющиеся записи, и хотя мы исправляем то, что я хотел добавить что-то в наш sql, что предотвратит добавление дубликатов (исправление плохих данных - это боль).
Наш текущий оператор вставки настроен как
INSERT INTO tblTest (id, name) VALUES (101, 'Bob')
Если вы бежите, что два раза в базе данных будет в конечном итоге выглядит как
actualid | id| name
1 | 101| Bob
2 | 101| Bob
И то, что я хотел бы, чтобы это выглядело как is
actualid | id| name
1 | 101| Bob
Вставить или заменить даст мне actualid 2
в примере и любой примере, я нашел с помощью где предложение было установка как
INSERT INTO tblTest SELECT ..... WHERE.....
Который не работает, потому что ни один из данных не находится в таблице еще (если я не делаю новичок ошибка, я не очень хорошо разбираюсь в sqlite или general sql).
С ней кажется, что текущее решение включает в себя создание новой таблицы с идентификатором UNIQUE, перемещение всего, удаление старой таблицы и переименование новой таблицы, при одновременном обеспечении того, чтобы это происходило один раз o n, прежде чем они попытаются что-либо сделать в базе данных и что он ТОЛЬКО случается один раз ... не является в настоящее время действительным решением для нас, я буду добавлять код для ручной проверки базы данных перед вставкой записи. Осторожно, что это такое, в следующий раз, когда я синхронизирую что-то с сервером, он будет автоинкремент, а идентификатор уникален. – Twomz