Синтаксическая ошибка в Sqlite менеджере - PullRequest
3 голосов
/ 19 августа 2011

Привет я использую следующий код для создания таблицы в диспетчере sqlite.

CREATE TABLE Transaction (ID PRIMARY KEY , amount REAL , currencyCode CHAR(3) , comments VARCHAR , debitAccount INTEGER , creditAccount INTEGER , debitAccountExchangeRate REAL , creditAccountExchangeRate REAL , FOREIGN KEY (currencyCode)REFERENCES Currency (code) , FOREIGN KEY (debitAccount) REFERENCES Account  (ID) , FOREIGN KEY (parentAccount) REFERENCES Account (ID ));

но я получаю синтаксическую ошибку. Может кто-нибудь, пожалуйста, укажите, что я делаю не так здесь.

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

Ответы [ 3 ]

4 голосов
/ 13 июля 2012

У меня была похожая проблема, и, хотите верьте, хотите нет, просто изменение названия моей таблицы на «СДЕЛКИ» сработало для меня.«Транзакция» должна быть зарезервированным словом в SQLite, но я знаю, что полученное сообщение об ошибке было далеко не полезным.

Надеюсь, это поможет.

4 голосов
/ 19 августа 2011

Попробуйте это ..

CREATE TABLE "Transaction" (ID PRIMARY KEY , amount REAL , currencyCode CHAR(3) , comments VARCHAR , debitAccount INTEGER , creditAccount INTEGER , debitAccountExchangeRate REAL , creditAccountExchangeRate REAL , FOREIGN KEY (currencyCode)REFERENCES Currency (code) , FOREIGN KEY (debitAccount) REFERENCES Account  (ID) , FOREIGN KEY (creditAccount) REFERENCES Account (ID ));
1 голос
/ 26 июля 2014

Я получил эту ошибку, потому что забыл разделить столбцы в моем запросе запятыми. Я думаю, это не нравится.

Я делал:

SELECT Col1 Col2 Col3 FROM Table1

SQLite ожидал:

Select Col1, Col2, Col3 FROM Table1
...