2016-12-28 11 views
1

"natalia"というスキーマの "m_aduana"という外部テーブルから "publico"というスキーマにデータをコピーしようとしています。 "mae_aduana"。Postgresql、外部テーブルから新しいテーブルにデータをコピー

重複を避けるために、テーブル「m_aduana」からすべての値をコピーするクエリを実行する必要があります。

私は今のところこのようなものを持っていますが、結果は私にInsert 0 0を送ります。つまり、何も挿入されていません。

insert into publico.mae_aduana(cod_aduana,nom_aduana,des_aduana,cod_aduana1,cod_aduana2,cod_aduana3,est_aduana) 
select cod_aduana,nom_aduana,des_aduana,cod_aduana1,cod_aduana2,cod_aduana3,est_aduana 
    from nathalia.m_aduana 
    where not exists (
    select * from publico.mae_aduana ma_ad, nathalia.m_aduana m_ad 
     where ma_ad.cod_aduana = m_ad.cod_aduana) 
+1

、より効率的な方法は、紛争に...挿入 '用いることであろう代わりに'どこ –

答えて

1

以下のようなwhere exists一部を変更したい場合があります。テーブルnathalia.m_aduanaを再度使用する必要はありません。以下のようなものでなければなりません場合は、次の

insert into publico.mae_aduana(cod_aduana,nom_aduana,des_aduana,cod_aduana1,cod_aduana2,cod_aduana3,est_aduana) 
select cod_aduana,nom_aduana,des_aduana,cod_aduana1,cod_aduana2,cod_aduana3,est_aduana 
    from nathalia.m_aduana 
    where not exists (
    select * from publico.mae_aduana ma_ad 
     where ma_ad.cod_aduana = nathalia.m_aduana.cod_aduana) 
+0

グレートをexists'ないのnothing'ん!できます。ありがとう、あなたが言ったように、私の問題は参照していた。 – Jorge

1

あなたは私はあなたが内側の選択に誤りがあると思う

from nathalia.m_aduana m 
where not exists (
select 1 from publico.mae_aduana 
    where cod_aduana = m.cod_aduana) 
関連する問題