Как отключить принудительный режим верхнего регистра для имен таблиц и столбцов в HSQL?Отключить верхний регистр для имен таблиц и столбцов в HSQL?
<artifactId>hsqldb</artifactId>
<version>2.3.1</version>
OS:Windows 7 x64
Как отключить принудительный режим верхнего регистра для имен таблиц и столбцов в HSQL?Отключить верхний регистр для имен таблиц и столбцов в HSQL?
<artifactId>hsqldb</artifactId>
<version>2.3.1</version>
OS:Windows 7 x64
Я не уверен, я понимаю проблему правильно, но просто пытается поставить некоторые усилия.
SET DATABASE COLLATION SQL_TEXT_UCC
Может быть, вы можете обратиться http://hsqldb.org/doc/guide/dbproperties-chapt.html
Из документации, это выглядит правильно. К сожалению, даже добавив этот оператор в мой сценарий создания БД, сравнения будут по-прежнему выполняться с учетом регистра. –
Примечание: серийное голосование будет отменено в конце дня. Не удивляйтесь, если завтра вы потеряете 200 человек. Обман системы не работает. – Adriaan
НЕ ИСПОЛЬЗУЙТЕ ЭТО, от спецификации не о ** именах **, а о данных внутри полей ** VARCHAR **. –
Правил, вокруг этого объясняется в HSQLDB documentation:
Когда объект базы данных создаются с помощью одного из CREATE заявления или переименовано с ALTER, если имя заключено в двойные кавычки , точное имя используется как форма case-normal. Но если это , не заключенное в двойные кавычки, имя преобразуется в верхний регистр и , эта версия в верхнем регистре сохраняется в базе данных как форма case-normal .
правило чувствительность к регистру для идентификаторов может быть описано просто как следующим образом:
- всех части заявления SQL преобразуется в верхний регистр перед обработкой, за исключением идентификаторов в двойных кавычках и строки в одном котировки
- идентификаторы, как некотируемые, так и двойные кавычки, затем обрабатываются как чувствительные к регистру
- Большинство движков баз данных следуют тому же правилу, за исключением, в некоторых отношениях, MySQL и MS SQLServer.
AFAIK Данное поведение не может быть отключено. (Следует отметить, что стандарт SQL нечувствителен к регистру, когда кавычки идентификаторы не используются.) Но, как упоминалось выше, нижний идентификатор случай может быть определен путем заключения в кавычки, например:
CREATE TABLE "lowercasetablename" ("lowercasecolname" INT);
SELECT "lowercasecolname" FROM "lowercasetablename";
Сохранение имен в верхнем регистре является требуемый стандартом SQL. Я не думаю, что вы можете отключить его в HSQLDB –
вы можете попробовать синонимы, пример и DDL ниже СОЗДАТЬ синоним REG ДЛЯ OTHER_SCHEMA.REGISTRATION_DETAIL_TABLE ; SELECT R_ID, R_DATE FROM REG WHERE R_DATA> CURRENT_DATE - 3 DAY –