2016-12-28 37 views
1

我正在嘗試做一個工作,將數據從模式「nathalia」的名爲「m_aduana」的外部表複製到我的模式「publico」和我的表「mae_aduana」。Postgresql,從外部表複製數據到一個新表

我需要做一個查詢,從表「m_aduana」複製所有的值,避免重複。

現在我得到了這樣的東西,但結果發送給我一個插入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

更有效的方式是使用'插入...衝突做nothing'代替'那裏不是exists' –

回答

1

我認爲你必須在內部選擇一個錯誤。你不需要再次使用表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

太好了!有用。謝謝,就像你說的,我的問題在於參考。 – Jorge

1

你可能想改變where exists部分像下面

from nathalia.m_aduana m 
where not exists (
select 1 from publico.mae_aduana 
    where cod_aduana = m.cod_aduana) 
相關問題