powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Наследование и ПК
7 сообщений из 7, страница 1 из 1
Наследование и ПК
    #34381721
YuriyM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет! Пишу тут первый раз - это раз, и в Postgres новичёк - это два.
Надеюсь благодаря сообществу кое-как разберусь с этим зверем. До этого работал с Firebird.
Такой вопрос:
Есть табица Scheduler с полями (id bigserial, opdate date, optime time, action_type bigint).
Есть вторая таблица current_actions (id bigserial, problem boolean) пронаследована от scheduler.
И в одной и в другой таблице первичным ключом объявлено поле с именем id.
Не будет ли проблем с работой ключа current_actions.id, ведь поле с таким же именем есть и у базовой таблицы (есть ли между ними (id) какая либо связь)?
И второй вопрос: можно ли каким либо образом увидеть из таблицы current_actions значение поля scheduler.id?
Заранее благодарен.
...
Рейтинг: 0 / 0
Наследование и ПК
    #34381855
Poligon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuriyMВсем привет! Пишу тут первый раз - это раз, и в Postgres новичёк - это два.
Надеюсь благодаря сообществу кое-как разберусь с этим зверем. До этого работал с Firebird.
Такой вопрос:
Есть табица Scheduler с полями (id bigserial, opdate date, optime time, action_type bigint).
Есть вторая таблица current_actions (id bigserial, problem boolean) пронаследована от scheduler.
И в одной и в другой таблице первичным ключом объявлено поле с именем id.
Не будет ли проблем с работой ключа current_actions.id, ведь поле с таким же именем есть и у базовой таблицы (есть ли между ними (id) какая либо связь)?
И второй вопрос: можно ли каким либо образом увидеть из таблицы current_actions значение поля scheduler.id?
Заранее благодарен.

а можно посмотреть код создания таблиц, и уточнить, что именно нужно, т.к. не совсем понятно, что такое "увидеть из таблицы current_actions значение поля scheduler.id"
...
Рейтинг: 0 / 0
Наследование и ПК
    #34382158
YuriyM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прощения за второй вопрос, вот перечитываю его и сам не понимаю чего имел ввиду (переработал однако )...
код создания таблиц:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
CREATE TABLE "scheduler"."scheduler" (
  "id" BIGSERIAL, 
  "minute" "scheduler"."minute", 
  "hour" "scheduler"."hour", 
  "day" "scheduler"."day", 
  "month" "scheduler"."month", 
  "year" "scheduler"."year", 
  CONSTRAINT "scheduler_pkey" PRIMARY KEY("id")
) WITHOUT OIDS;

Код: plaintext
1.
2.
3.
4.
CREATE TABLE "scheduler"."table1" (
  "i" BIGINT, 
  CONSTRAINT "table1_pkey" PRIMARY KEY("id")
) INHERITS ("scheduler"."scheduler")
WITHOUT OIDS;

В таблицах чуть изменены поля...
...
Рейтинг: 0 / 0
Наследование и ПК
    #34382578
Poligon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я так понимаю, что сдесь:
Код: plaintext
1.
2.
3.
4.
CREATE TABLE "scheduler"."table1" (
  "i" BIGINT, 
  CONSTRAINT "table1_pkey" PRIMARY KEY("id")
) INHERITS ("scheduler"."scheduler")
WITHOUT OIDS;

не "i" BIGINT, а "id" BIGINT - это так, чтобы уточнить.
Зачем создавать поле "id" BIGINT?
При наследовании оно будет у потопка, но, оно не будет primary key.
Поэтому, можно писать так:

Код: plaintext
1.
2.
3.
CREATE TABLE "scheduler"."table1" (
  CONSTRAINT "table1_pkey" PRIMARY KEY("id")
) INHERITS ("scheduler"."scheduler")
WITHOUT OIDS;

Так всетаки в чем вопрос?

Подробно почитать о наследовании в postgreSQL можно сдесь:
postgreSQL manual5.8. Inheritance
...
Рейтинг: 0 / 0
Наследование и ПК
    #34382660
YuriyM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При наследовании, поле id создаётся и у дочерней таблицы, это я понял...
Я могу безопасно использовать поле id в дочерней таблице если сделаю его перв. ключём?
То есть получается поле то одно, а в двух таблицах используется как первичный ключ. Это нормально?
...
Рейтинг: 0 / 0
Наследование и ПК
    #34383887
Poligon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuriyM
Я могу безопасно использовать поле id в дочерней таблице если сделаю его перв. ключём?

Да, можно использовать, только на поле дочерней таблицы будут распространятся ограничения типа check constraints поля родительской таблицы. И вообще, что и как написано, как я уже говорил, здесь (какие ограничения для полей наследуются, как делать выборки из всех дочерних таблиц и пр.):


postgreSQL manual5.8. Inheritance
...
Рейтинг: 0 / 0
Наследование и ПК
    #34384553
YuriyM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы и терпение, теперь полез в 5.8. Inheritance. ))
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Наследование и ПК
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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