2016-03-24 6 views
5

Как отключить принудительный режим верхнего регистра для имен таблиц и столбцов в HSQL?Отключить верхний регистр для имен таблиц и столбцов в HSQL?

<artifactId>hsqldb</artifactId> 
<version>2.3.1</version> 

OS:Windows 7 x64

+1

Сохранение имен в верхнем регистре является требуемый стандартом SQL. Я не думаю, что вы можете отключить его в HSQLDB –

+0

вы можете попробовать синонимы, пример и DDL ниже СОЗДАТЬ синоним REG ДЛЯ OTHER_SCHEMA.REGISTRATION_DETAIL_TABLE ; SELECT R_ID, R_DATE FROM REG WHERE R_DATA> CURRENT_DATE - 3 DAY –

ответ

2

Я не уверен, я понимаю проблему правильно, но просто пытается поставить некоторые усилия.

SET DATABASE COLLATION SQL_TEXT_UCC 

Может быть, вы можете обратиться http://hsqldb.org/doc/guide/dbproperties-chapt.html

+0

Из документации, это выглядит правильно. К сожалению, даже добавив этот оператор в мой сценарий создания БД, сравнения будут по-прежнему выполняться с учетом регистра. –

+0

Примечание: серийное голосование будет отменено в конце дня. Не удивляйтесь, если завтра вы потеряете 200 человек. Обман системы не работает. – Adriaan

+0

НЕ ИСПОЛЬЗУЙТЕ ЭТО, от спецификации не о ** именах **, а о данных внутри полей ** VARCHAR **. –

9

Правил, вокруг этого объясняется в HSQLDB documentation:

Когда объект базы данных создаются с помощью одного из CREATE заявления или переименовано с ALTER, если имя заключено в двойные кавычки , точное имя используется как форма case-normal. Но если это , не заключенное в двойные кавычки, имя преобразуется в верхний регистр и , эта версия в верхнем регистре сохраняется в базе данных как форма case-normal .

правило чувствительность к регистру для идентификаторов может быть описано просто как следующим образом:

  • всех части заявления SQL преобразуется в верхний регистр перед обработкой, за исключением идентификаторов в двойных кавычках и строки в одном котировки
  • идентификаторы, как некотируемые, так и двойные кавычки, затем обрабатываются как чувствительные к регистру
  • Большинство движков баз данных следуют тому же правилу, за исключением, в некоторых отношениях, MySQL и MS SQLServer.

AFAIK Данное поведение не может быть отключено. (Следует отметить, что стандарт SQL нечувствителен к регистру, когда кавычки идентификаторы не используются.) Но, как упоминалось выше, нижний идентификатор случай может быть определен путем заключения в кавычки, например:

CREATE TABLE "lowercasetablename" ("lowercasecolname" INT); 
SELECT "lowercasecolname" FROM "lowercasetablename"; 

 Смежные вопросы

  • Нет связанных вопросов^_^