ALTER TABLE bas_relac_uf_cst_csosn ADD COLUMN consumidor_final integer; UPDATE bas_relac_uf_cst_csosn SET consumidor_final = 0 WHERE consumidor_final IS NULL; ALTER TABLE bas_relac_uf_cst_csosn ALTER COLUMN consumidor_final SET NOT NULL; ALTER TABLE IF EXISTS public.bas_relac_uf_cst_csosn DROP CONSTRAINT IF EXISTS pk_bas_relac_uf_cst_csosn; ALTER TABLE IF EXISTS public.bas_relac_uf_cst_csosn ADD CONSTRAINT pk_bas_relac_uf_cst_csosn PRIMARY KEY (uf, cst, cod_regime_tributario, contribuinte_icms, consumidor_final); INSERT INTO bas_relac_uf_cst_csosn SELECT uf, cst, csosn, cod_regime_tributario, contribuinte_icms, 1 FROM bas_relac_uf_cst_csosn WHERE consumidor_final = 0 AND (uf, cst, csosn, cod_regime_tributario, contribuinte_icms) NOT IN(SELECT ax_relac.uf, ax_relac.cst, ax_relac.csosn, ax_relac.cod_regime_tributario, ax_relac.contribuinte_icms FROM bas_relac_uf_cst_csosn as ax_relac WHERE ax_relac.uf = uf AND ax_relac.cst = cst AND ax_relac.csosn = csosn AND ax_relac.cod_regime_tributario = cod_regime_tributario AND ax_relac.contribuinte_icms = contribuinte_icms AND ax_relac.consumidor_final = 1);