Форумы портала PHP.SU » Серверное администрирование » Администрирование БД » внешний ключ по существующему индексу в pg

Страниц (1): [1]
 

1. LIME - 02 Сентября, 2017 - 15:37:01 - перейти к сообщению
всем привет
вопрос к товарищу Мелкому
если я создал внешний ключ по полю например foreign_id_fk, и уже существует индекс foreign_id, other_column_id, other_column2_id
будет ли он использован или новый создаст? как проверить? как заставить?
2. Мелкий - 02 Сентября, 2017 - 17:22:46 - перейти к сообщению
Создание FK требует уже созданный уникальный ключ на таблице на которую ссылаемся. Если уникальный ключ по трём полям, а повесить FK хотим не на все 3 - то получим отлуп. Это вот здесь (кстати, deferrable ограничения для fk использовать тоже нельзя)
Для таблицы, которая будет содержать ссылку - индекс навешиванием FK вообще не создаётся никакой и нигде, и его существование не проверяется никак. Что иногда бывает сюрпризом в продакшене.

Спойлер (Отобразить)
3. LIME - 02 Сентября, 2017 - 18:50:06 - перейти к сообщению
ага
в общих чертах понял
спасибо большое портянку изучу подробно на работе
спс еще раз
(Добавление)
Мелкий пишет:
индекс навешиванием FK вообще не создаётся никакой и нигде,
разве в мускуле не создается если не было? а?
4. Мелкий - 02 Сентября, 2017 - 19:13:02 - перейти к сообщению
LIME пишет:
разве в мускуле не создается если не было?

нигде относилось к таблицам в базе: ни в той, на которую говорим alter ни в той, на которую указываем, ни по дереву наследования или ещё каким-то таблицам.
У mysql помнится да, неявное построение индекса происходит.
5. LIME - 02 Сентября, 2017 - 19:49:19 - перейти к сообщению
Ага
Понятно
Буду знать
Спасибо

 

Powered by ExBB FM 1.0 RC1