powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Не выполняется запрос
8 сообщений из 8, страница 1 из 1
Не выполняется запрос
    #34401753
aleksandy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В базе данных создал такие таблицы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
CREATE TABLE "relativesType" (
  id int4 NOT NULL DEFAULT nextval('"relativesType_id_seq"'::regclass),
  "relativeName" char( 30 ) NOT NULL,
  CONSTRAINT pk_relative PRIMARY KEY (id)
) 

CREATE TABLE members (
  id int4 NOT NULL DEFAULT nextval('members_id_seq'::regclass),
  account_id int4 NOT NULL,
  "memberNo" int2 NOT NULL,
  family char( 20 ) NOT NULL,
  name char( 20 ) NOT NULL,
  "fatherName" char( 20 ) NOT NULL,
  birthday date NOT NULL,
  sex bool NOT NULL,
  "relative" int4 NOT NULL,
  inn int8,
  "pensionPolicy" int8,
  address char( 11 ) NOT NULL,
  "birthDocNo" int4,
  "birthDocDate" date,
  nationality int4,
  education int4,
  "educationType" int4,
  "regDate" date NOT NULL,
  "prevAddress" char( 11 ),
  CONSTRAINT pk_members PRIMARY KEY (id),
  CONSTRAINT fk_account_id FOREIGN KEY (account_id)
      REFERENCES accounts (id) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE,
  CONSTRAINT "fk_relativeType" FOREIGN KEY ("relative")
      REFERENCES "relativesType" (id) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE SET NULL
)

Запихал в relativesType некоторое количество записей (~10). Пытаюсь сделать простой запрос:
Код: plaintext
select * from relativesType

Выдается такая ошибка:
ERROR: relation "relativestype" does not exist
...
Рейтинг: 0 / 0
Не выполняется запрос
    #34401789
Бабичев Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заключив название в двойные кавычки, Ты создал регистрозависимое название таблицы (к полям это тоже имеет отношения - все названия полей, что при создании были указаны в двойных кавычках, будут регистрозависимыми), соответственно нужно эту регистрозависимость поддерживать и в запросах.
Если написать просто вот так:
Код: plaintext
select * from relativesType
, то сервер будет искать таблицу вот с таким именем: RELATIVESTYPE
При этом в системном словаре данных таблица имеет имя relativesType. Чтобы теперь к ней обратиться, нужно писать запрос вот так:
Код: plaintext
select * from "relativesType"
.

Либо создать таблицу нормально - указывая имена таблицы и её полей без двойных кавычек.
...
Рейтинг: 0 / 0
Не выполняется запрос
    #34401852
aleksandy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бабичев СергейЗаключив название в двойные кавычки, Ты создал регистрозависимое название таблицы (к полям это тоже имеет отношения - все названия полей, что при создании были указаны в двойных кавычках, будут регистрозависимыми), соответственно нужно эту регистрозависимость поддерживать и в запросах.
Если написать просто вот так:
Код: plaintext
select * from relativesType
, то сервер будет искать таблицу вот с таким именем: RELATIVESTYPE
При этом в системном словаре данных таблица имеет имя relativesType. Чтобы теперь к ней обратиться, нужно писать запрос вот так:
Код: plaintext
select * from "relativesType"
.

Либо создать таблицу нормально - указывая имена таблицы и её полей без двойных кавычек.

Спасибо за разъяснение. Просто таблицы я создавал при помощи pgAdmin и запросы на создание таблиц взял оттуда же. А можно ли как-нибудь заставить pgAdmin создавать таблицы так, чтобы в кавычки не заключалось ни чего (ни имена таблиц, ни имена полей)?

Заранее благодарен...
...
Рейтинг: 0 / 0
Не выполняется запрос
    #34401873
Бабичев Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleksandyА можно ли как-нибудь заставить pgAdmin создавать таблицы так, чтобы в кавычки не заключалось ни чего (ни имена таблиц, ни имена полей)?А ты внимательно посмотри на имена объектов, заключенных в кавычки. Выводы сделать сам сможешь?

З.Ы.
Подсказка: пиши все имена однообразно, без выделения некоторых символов в верхний регистр :)
И не используй зарезервированные слова в качестве наименований объектов
...
Рейтинг: 0 / 0
Не выполняется запрос
    #34402227
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бабичев СергейЕсли написать просто вот так:
Код: plaintext
select * from relativesType
, то сервер будет искать таблицу вот с таким именем: RELATIVESTYPEПочти верно. НО.
Вы видимо спутали PostgreSQL с ораклом.

PostgreSQL будет искать таблицу с именем, приведенным _в нижний_ регистр.
и вообше то фак уже месяц как пишецо и висит под носом.
...
Рейтинг: 0 / 0
Не выполняется запрос
    #34402264
Бабичев Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4321Почти верно. НО.
Вы видимо спутали PostgreSQL с ораклом. Каюсь, грешен :)


4321и вообше то фак уже месяц как пишецо и висит под носом.Это замечание мне или автору топика?
...
Рейтинг: 0 / 0
Не выполняется запрос
    #34402574
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бабичев Сергей 4321и вообше то фак уже месяц как пишецо и висит под носом.Это замечание мне или автору топика?гм. А это важно?
дабы никого не задеть - можете считать, что это театральный "шопот в зал"
...
Рейтинг: 0 / 0
Не выполняется запрос
    #34402625
Бабичев Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4321гм. А это важно?Собственно - нет.

4321дабы никого не задеть - можете считать, что это театральный "шопот в зал" Апарт , то бишь :)
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Не выполняется запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]