2016-12-28 3 views
1

Ich versuche, einen Job zu machen, der Daten aus einer fremden Tabelle namens "m_aduana" des Schemas "nathalia" in mein Schema "publico" und meine Tabelle kopiert "mae_aduana".Postgresql, Daten in eine neue Tabelle von einer fremden Tabelle kopieren

Ich muss eine Abfrage durchführen, die alle Werte aus der Tabelle "m_aduana" kopiert, wodurch Duplikate vermieden werden.

Ich habe so etwas für jetzt, aber das Ergebnis sendet mir eine Insert 0 0, was bedeutet, dass nichts eingefügt wird.

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

Eine effizientere Art und Weise wäre 'Einsatz zu verwenden ... auf Konflikt zu tun nothing' statt dem' wo nicht exists' –

Antwort

1

Ich glaube, Sie haben einen Fehler in der inneren wählen. Sie müssen den Tisch nathalia.m_aduana nicht erneut verwenden. Wenn sollte so etwas wie sein:

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

Great! Es klappt. Danke, wie du gesagt hast, mein Problem war die Referenz. – Jorge

1

Vielleicht möchten Sie wie die where exists Teil ändern, unter

from nathalia.m_aduana m 
where not exists (
select 1 from publico.mae_aduana 
    where cod_aduana = m.cod_aduana) 
Verwandte Themen