Eu tenho duas tabelas que estou tentando reconciliar as diferenças no postgresql.
A Tabela A é antiga e precisa ser atualizada.
A Tabela B é uma versão atualizada e idêntica ao esquema da Tabela A, para a qual tenho os dados em uma tabela temporária no banco de dados da Tabela A.
Infelizmente, algum tempo depois que os dois bancos de dados divergiram, alguém alterou os UUIDs dos registros na tabela B e preciso que a tabela A corresponda à tabela B.
O esquema para ambas as tabelas é:
CREATE TABLE A
(
uuid VARCHAR(36) NOT NULL,
template_folder_uuid_parent VARCHAR(36),
heading VARCHAR(255) NOT NULL,
image VARCHAR(100),
downloaded BOOL NOT NULL,
allow_in TEXT NOT NULL,
template_group VARCHAR(255) NOT NULL,
country_filter VARCHAR(1024) NOT NULL,
user_id INT,
date_created TIMESTAMP,
date_modified TIMESTAMP,
is_modified BOOL NOT NULL,
image_path VARCHAR(255)
);
Preciso pesquisar na Tabela A e na Tabela B e corresponder registros com base em template_folder_uuid_parent e cabeçalho, em seguida, definir o UUID do registro da Tabela A para o UUID da Tabela B. Depois de alterado na Tabela A, o UUID será colocado em cascata corretamente.
A última linha é evitar atualizações vazias, que muitas vezes são esquecidas e podem ser muito caras com tabelas grandes.
Eu primeiro verificaria se esta atualização faz o que você espera antes de aplicá-la: