Я пытаюсь создать подмножество таблицы из одной таблицы в другую
пользователей (id, name, referrer_id, country_id)
Эта таблица имеет самоссылочную связьс referrer_id в качестве внешнего ключа к себе.
Я попытался выполнить следующий запрос
psql source_table -c 'COPY (SELECT * FROM users where country_id = 2) TO stdout' | psql target_table -c 'COPY users FROM stdin'
Проблема, связанная с описанным выше подходом, может относиться не к тому же подмножеству, поэтому будет отображаться ошибка
ОШИБКА:вставка или обновление таблицы «users» нарушает ограничение внешнего ключа «users_referrer_id_fk»
ДЕТАЛИ: Ключ (referrer_id) = (123) отсутствует в таблице «users».
Iпопытался использовать ON CONFLICT, но кажется, что синтаксис ON CONFLICT недоступен в синтаксисе COPY TABLE.Есть ли лучший способ передачи подмножества таблиц между базами данных
Я ищу что-то вроде этого
psql lx_default -c 'COPY (SELECT * FROM users where country_id = 97) TO stdout' | psql lx_hongkong -c 'COPY users FROM stdin ON CONFLICT DO SET users.referrer_id=null'
Выше SQL синтаксически неверно