powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Создание двух таблиц ссылающихся друг на друга!
7 сообщений из 7, страница 1 из 1
Создание двух таблиц ссылающихся друг на друга!
    #35161867
Leximus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!
Столкнулся с такой проблемой. Мне необходимо создать две таблицы, и в каждой таблице, есть поля которые ссылаются друг на друга. Получается что первая таблица не создаётся потому что нет второй и наоборот!
Я вроде придумал пока два способа, но не знаю, прокатят они или нет!
Первый способ создать Таблицу А без полей внешних сылок на таблицу Б, затем создать таблицу Б, и потом добавить в таблицу А поля ссылающиеся на таблицу Б! Но не знаю как правильно это осущетсвить языком SQL(добавлять поля пока не научился)

Второй способ состоит в том чтобы создать таблицу А, затем таблицу Б, затем заменить(удалить и создать заного) таблицу А. В принцепе похож на предыдущий способ но я знаю как реализовать, только сомневаюсь что прокатит удаление таблицы, когда есть другие на неё ссылающиеся таблицы!

Но может кто то знает третий спосою и попроще?

Спасибо!

P.S.: И позжалуйста, подскажите как правильно добавить в таблицу поле - внешнюю ссылку.
...
Рейтинг: 0 / 0
Создание двух таблиц ссылающихся друг на друга!
    #35161893
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
внешняя ссылка - ни что иное как самостоятельный объект (constraint), который совсем не обязательно создавать в момент создания таблицы. А следовательно
1. Создаем одну таблицу.
2. Создаем другую таблицу
3. Создаем констреинт foreign key с одной на другую
4. создаем форин кей с другой на первую

Всё готово. Поля при этом добавлять не надо, их надо создавать сразу в таблицах.
...
Рейтинг: 0 / 0
Создание двух таблиц ссылающихся друг на друга!
    #35161973
Leximus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pamirвнешняя ссылка - ни что иное как самостоятельный объект (constraint), который совсем не обязательно создавать в момент создания таблицы. А следовательно
1. Создаем одну таблицу.
2. Создаем другую таблицу
3. Создаем констреинт foreign key с одной на другую
4. создаем форин кей с другой на первую

Всё готово. Поля при этом добавлять не надо, их надо создавать сразу в таблицах.

Спасибо! А какогонибудь маленького примера нету?
Как правильно внешнюю сылку создавать?
...
Рейтинг: 0 / 0
Создание двух таблиц ссылающихся друг на друга!
    #35164563
Leximus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну позжалуйста, помогите с ответом!
...
Рейтинг: 0 / 0
Создание двух таблиц ссылающихся друг на друга!
    #35164567
Фотография Niemi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
после создания таблиц пользуем ALTER TABLE. а далее всё в доке можно найти.
-- signature --
Да кому он нужен этот 8-ой номер?
...
Рейтинг: 0 / 0
Создание двух таблиц ссылающихся друг на друга!
    #35164586
Фотография Степан H.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeximusНу позжалуйста, помогите с ответом!

Если Вам лень учиться правильно писать зависимости, можете использовать для этой задачи
редактор pgAdmin или EMSPostgreSQL Manager.

(хотя как же без них ))) ).
...
Рейтинг: 0 / 0
Создание двух таблиц ссылающихся друг на друга!
    #35164614
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leximus пишет:
> Столкнулся с такой проблемой. Мне необходимо создать две таблицы, и в
> каждой таблице, есть поля которые ссылаются друг на друга. Получается
> что первая таблица не создаётся потому что нет второй и наоборот!

Классическая проблема, и классическое же решение - создавайте
таблицы в два этапа.
Сначала создавайте сами таблицы (все) НО БЕЗ FOREIGN KEY CONSTRAINTs

Затем создавайте констрейнты FOREIGN KEY с помощью ALTER TABLE.

И еще также напомню, что при налиции циклических ссылок таблиц друг на друга
одно из ссылающихся полей должно быть обязательно NULLable, чтобы разорвать
цикл зависимостей.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Создание двух таблиц ссылающихся друг на друга!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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