@LevSvl08

Можно при создании таблицы указать имя столбца в двойных кавычках?

CREATE TABLE AXIOMA.ODK_LOCHIERARCHY  (
		  "LOCATION" VARCHAR(30 ) NOT NULL , 
		  "PARENT" VARCHAR(30 ) , 
		  "SYSTEMID" VARCHAR(12 ) NOT NULL , 
		  "CHILDREN" INTEGER NOT NULL , 
		  "GISPARAM1" VARCHAR(1 ) , 
		  "GISPARAM2" VARCHAR(1 ) , 
		  "GISPARAM3" VARCHAR(1 ) , 
		  "SITEID" VARCHAR(8 ) NOT NULL , 
		  "ORGID" VARCHAR(8 ) NOT NULL , 
		  "LOCHIERARCHYID" BIGINT NOT NULL , 
		  "ROWSTAMP" BIGINT NOT NULL )   ;
  • Вопрос задан
  • 384 просмотра
Решения вопроса 2
tsklab
@tsklab
Здесь отвечаю на вопросы.
Да. Можно. Если в названии неоднозначность (пробел, например), то обязательно. Ещё пишут, что название в кавычках будет регистрозависимое, но подтверждение этому в документации не нашёл.
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
Postgres по умолчанию - регистро-нечувствительный. И Oracle тоже.

Тоесть можно сделать так.
dh=> create table tab(id int);
CREATE TABLE
dh=> select * from tab;
 id 
----
(0 rows)

dh=> select * from TAB;
 id 
----
(0 rows)

Работать легко. Case-Insensitive. Как в языке Паскаль. И высоту регистра делать чисто для красоты. Например выделять ключевые слова SQL или сами идентификаторы.

Но если по бизнес-задаче окажется что есть идентификатор для которого регистр ИМЕЕТ значение то мы его отковычиваем. Выглядит как при программировании на C++/Java. Вот в данном случае индекс FTS у нас записан аж тремя способами и все это разные колонки.

dh=> create table "Market"("SnP" text, "FTS" text, "Fts" text, "fts" text);
CREATE TABLE
dh=> select * from "Market";
 SnP | FTS | Fts | fts 
-----+-----+-----+-----
(0 rows)


Но работать в консоли становится неудобно. Больше надо клавиш нажимать.

Поэтому решать вам.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы