2012-03-01 3 views
0

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

Когда я пытаюсь выполнить этот запрос, он генерирует с спящем/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) 

ответ

1

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

Эта цитата говорит INDEX это ключевое слово в SQLite:

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

+0

Я согласен, даже если это не было зарезервированным ключевым словом, Я бы не стал использовать это имя, чтобы быть в безопасности. – MilkyWayJoe

+0

Проблема в том, что он используется в существующей базе данных (plexapp), которую я хочу запросить. Поэтому я не могу просто переименовать его – cremersstijn

+0

Не должен ли человек, создавший/поддерживающий эту базу данных, знать об этом? Как он не был обнаружен? – duffymo

2

Try имя, включающее столбец в квадратных скобках:

metadatait0_.[index] as index25_, 
Смежные вопросы