Люди, не сочтите за труд ответить. Проблема с верхним регистром

ArtKir
Дата: 23.05.2003 06:51:34
Проблема такова:
делаю запрос : SELECT jobId FROM ob_responsibility WHERE personId=255

выдаёт ошибку: ERROR: Attribute "jobid" not found
т.е. я хочу вытащить "jobId" (буква "I" используется в верхнем регистре),
а реально происходит попытка вытащить "jobid" (буква "I" используется в нижнем регистре).

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

Или это в мёртвую зашито в настройках?
Niemi
Дата: 23.05.2003 08:02:19
Можно при создании таблицы:
Create Table "MyName" (

"MyId" int,
"MyField" varchar(10)
);

По умолчанию всё в нижнем регистре.
А так с помощью ALTER TABLE переименовывай.
ArtKir
Дата: 23.05.2003 08:08:44
так у меня и так таблица в таком виде:

Create Table "ob_responsibility" (
"jobId" int,
"personId" int
);

делаю запрос : SELECT jobId FROM ob_responsibility WHERE personId=255
выдаёт ошибку: ERROR: Attribute "jobid" not found
Niemi
Дата: 23.05.2003 11:34:01
Так и запрос нужно делать так же:
SELECT "jobId" FROM "ob_responsibility" WHERE "personId"=255; 
nikl
Дата: 23.05.2003 12:25:24
что-то вы странное говорите.

bill_dialup=# SELECT login FROM ClientService WHERE idClient = 336;
login
-------
ald
(1 row)

bill_dialup=# SELECT lOgIn FROM ClientService WHERE idClient = 336;
login
-------
ald
(1 row)

да в общем-то все равно как. любая выборка работает, с любым регистром.
тоже касается и имен таблиц.

правда таблицы создавались так:


CREATE TABLE ClientService (
idClientService INT4 NOT NULL,
idClient INT4 NOT NULL,
idState INT4 NOT NULL,
idService INT4 NOT NULL,
Login VARCHAR(32) NULL
...

);

то есть без кавычек. может быть в этом дело?
Niemi
Дата: 23.05.2003 12:31:49
Именно в этом и дело, попробуй переименовать с кавычками и почуствуешь разницу.
nikl
Дата: 23.05.2003 12:57:36
да я потом умучаюсь вспоминатть как у меня кто назывался.
зачем усложнять себе жизнь?
Niemi
Дата: 23.05.2003 13:02:54
Вообще как я понимаю можно обойтись и без этого, но иногда люди используют зарезервированые слова postgresql, что б этого избежать используют " , например "date"
Shweik
Дата: 24.05.2003 13:01:02
Кроме всего прочего квотинг имен позволяет делать такие таблички с
"локалЬизованными" именами 8) Например:
CREATE TABLE "контактные данные" (
"номер" bigint,
"фио" character varying(50),
"дт" bigint,
"рт" bigint,
"город" smallint,
"район" smallint,
"улица" smallint,
"дом" character varying(4),
"блок" character varying(4),
"квартира" character varying(4),
"комментарий" text
);
Хотя я заранее согласен со всеми кто скажет что это чревато багищами
и траблищами. Правда пока что каких либо проблем с использованием
таких имен не обнаружено 8) Неудобство только одно - незабывать
вставлять в начало сессий set client_encoding to .....