powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / фантомный констрэйнт
7 сообщений из 7, страница 1 из 1
фантомный констрэйнт
    #40041001
sstatistic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброй ночи.

Есть таблица1:

Код: sql
1.
t1



Есть таблица2:

Код: sql
1.
t2




У t2 есть внешний ключ

Код: sql
1.
...ADD CONSTRAINT fk_t2 FOREIGN KEY (t1_id) REFERENCES t1(id) ON DELETE CASCADE;
...
Рейтинг: 0 / 0
фантомный констрэйнт
    #40041002
sstatistic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При попытке перенести БД с помощью дампа при восстановлении ошибка:

Код: sql
1.
DETAIL:  Ключ (t1_id)=(114565488) отсутствует в таблице "t1".



и констрэйнт не создается.
...
Рейтинг: 0 / 0
фантомный констрэйнт
    #40041003
sstatistic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запросом проверил, действиетельно в рабочей БД Ключ (t1_id)=(114565488) отсутствует в таблице "t1".

при этом в t2 он имеется.


И реиндекс и вакуум фулл таблицы t2 проходят без ошибок.






Как такое может быть?

И как перенести эту БД дампом?
...
Рейтинг: 0 / 0
фантомный констрэйнт
    #40041004
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sstatistic,

авторИ как перенести эту БД дампом?
удалить (t1_id)=(114565488) из t2

авторКак такое может быть?
есть больше одного метода как от superuser сломать валидность fk ))



--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
фантомный констрэйнт
    #40041011
sstatistic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk
sstatistic,

авторИ как перенести эту БД дампом?

удалить (t1_id)=(114565488) из t2

авторКак такое может быть?
есть больше одного метода как от superuser сломать валидность fk ))



--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru



Удалил.

Перенслось.

Спасибо )







Ну а на счет больше одного, на ум только приходит отключение по питанию... а какие еще варианты могут быть?
...
Рейтинг: 0 / 0
фантомный констрэйнт
    #40041012
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sstatistic

Ну а на счет больше одного, на ум только приходит отключение по питанию... а какие еще варианты могут быть?


1)set session_replication_role to replica;
документацияSince foreign keys are implemented as triggers, setting this parameter to replica also disables all foreign key checks, which can leave data in an inconsistent state if improperly used.


2)alter table t2 DISABLE TRIGGER ALL;
документацияOne can disable or enable a single trigger specified by name, or all triggers on the table, or only user triggers (this option excludes internally generated constraint triggers such as those that are used to implement foreign key constraints or deferrable uniqueness and exclusion constraints).


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
фантомный констрэйнт
    #40041019
sstatistic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk
sstatistic

Ну а на счет больше одного, на ум только приходит отключение по питанию... а какие еще варианты могут быть?


1)set session_replication_role to replica;
документацияSince foreign keys are implemented as triggers, setting this parameter to replica also disables all foreign key checks, which can leave data in an inconsistent state if improperly used.


2)alter table t2 DISABLE TRIGGER ALL;
документацияOne can disable or enable a single trigger specified by name, or all triggers on the table, or only user triggers (this option excludes internally generated constraint triggers such as those that are used to implement foreign key constraints or deferrable uniqueness and exclusion constraints).


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru


Вот это да!!!

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


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