Ошибка синтаксиса SQLite - PullRequest
1 голос
/ 05 мая 2011

Я сделал запрос sql, ниже.Я получаю исключение, которое я также показал.Любая помощь приветствуется.

ЗАПРОС:

INSERT OR REPLACE INTO CLAIMS (DATE ,TIME , ADDRESS , CITY, 
STATE , POSTAL , PHFNAME ,PHLNAME ,PHEMAIL ,PHPHONE ,AGENCY ,POLICY ,VEHICLENAME,
YEAR ,MAKE ,MODEL ,PLATELICENSE ,LSTATE ,VIN ,DRIVERNAME,DRFNAME ,DRLNAME ,
DRPHONE ,DREMAIL ,DRLICENSE) VALUES("Wednesday, May 4, 2011", 
"10:39:10 PM EDT", "400 Chatham","Pune", "Penn", "45223", "John", 
"Richard","jsmith@newyahoo.com","+1-11111111111", 
"Three Rivers Insurance","(null)", "(null)", "(null)", 
"(null)", "(null)","(null)", "(null)", "(null)","(null)", 
"(null)", "(null)","(null)", "(null)","(null)") WHERE DATE  LIKE 
'Wednesday, May 4,%' AND TIME = '10:39:10 PM EDT'

Ошибка:

SQLiteManager: Likely SQL syntax error:


 [ near "WHERE": syntax error ]
Exception Name: NS_ERROR_FAILURE
Exception Message: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [mozIStorageConnection.createStatement]

Ответы [ 2 ]

4 голосов
/ 17 июня 2013

Я столкнулся с той же проблемой для таблицы синхронизации для вставки и обновления, и, наконец, я использую. Чтобы использовать оператор вставки или замены, вам нужно использовать функцию coalesce, для которой требуется столбец первичного ключа, чтобы поместить предложение where.

COALESCE((SELECT PRIMARY_KEY_COLUMN FROM TABLE_NAME WHERE UNIQUE_COLUMN = 'VALUE'),
(SELECT MAX(PRIMARY_KEY_COLUMN)+1 FROM TABLE_NAME))

у меня это сработало, например

INSERT OR  REPLACE INTO TBL_ADDRESSES
(ADDRESS_ID,ADDRESS1,ADDRESS2,ADDRESS3,ADDRESS_NAME,CITY,DB_ID) 
VALUES (
    COALESCE((SELECT ADDRESS_ID FROM TBL_ADDRESSES WHERE DB_ID = '111'),
        (SELECT MAX(ADDRESS_ID)+1 FROM TBL_ADDRESSES)),
    'IT 27','Pratap DSFSDSDDSDSF','test add ','IT 27','Jaipur','111') ;
2 голосов
/ 05 мая 2011

INSERT OR REPLACE не поддерживает предложение WHERE, см. Документ SQLite Insert . Вы можете использовать предложение WHERE в инструкциях UPDATE, см. Документ Вставка SQLite

Может ли помочь вам, если вы сообщите нам, что вы хотели здесь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...