Можно ли использовать «индекс» в качестве имени столбца в SQLite? - PullRequest
1 голос
/ 01 марта 2012

Можно ли использовать index в качестве имени столбца в sqlite?

Когда я пытаюсь выполнить этот запрос, он генерируется с помощью hibernate / jpa:

select
    metadatait0_.id as id25_,
    metadatait0_.guid as guid25_,
    metadatait0_.index as index25_,
    metadatait0_.library_section_id as library7_25_,
    metadatait0_.metadata_type as metadata4_25_,
    metadatait0_.parent_id as parent5_25_,
    metadatait0_.title as title25_ 
from
    metadata_items metadatait0_

Я получаю следующую ошибку:

org.hibernate.exception.GenericJDBCException: could not execute query
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140)
...
Caused by: java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (near "index": syntax error)

Ответы [ 2 ]

3 голосов
/ 02 марта 2012

Попробуйте включить имя столбца в квадратных скобках:

metadatait0_.[index] as index25_,
2 голосов
/ 01 марта 2012

Я бы уклонился от этого; index может быть ключевым словом в вашей СУБД. Я бы переименовал его во что-то другое.

Эта цитата говорит, что INDEX является ключевым словом в SQLite:

http://www.sqlite.org/lang_keywords.html

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