Avatar billede jakobscafe Nybegynder
31. oktober 2006 - 13:08 Der er 4 kommentarer og
1 løsning

Kopiere navne fra tabel1 til tabel2 og skip kendte navne

Hej. Tabel1 (stor) indeholder unikke fornavne.
Tabel2 indeholder nye navne, som måske eller måske ikke findes i tabel2.
Jeg vil opdatere tabel1 med navne fra tabel2.
Det går godt så længe tabel2 kun indeholder navne, der ikke findes i tabel1, men findes navnet allerede i tabel1 får jeg (naturligt nok ) en unik begrænsning overtrådt.

Hvordan indsætter man alle rækker fra een tabel i en anden, forsåvidt at navnet ikke allerede findes?

I MySQL findes der vist en 'IGNORE' som skipper de records som allerede findes, men hur gør man det i Oracle?
Avatar billede arne_v Ekspert
31. oktober 2006 - 13:10 #1
kan du ikke bare smække en WHERE NOT IN SELECT på din nuværende SQL ?
Avatar billede teepee Nybegynder
31. oktober 2006 - 13:23 #2
Du kan også bruge MERGE, og så opdatere eksisterende rækker, men hvis der ikke er rettet noget i nogle af rækkerne ville jeg nok bruge MINUS.
INSERT INTO TABLE1
SELECT * FROM TABLE2
MINUS
SELECT * FROM TABLE1;
Avatar billede jakobscafe Nybegynder
01. november 2006 - 13:20 #3
where not exists (select... ) gjorde udslaget og alle glade.
Jeg har ikke prøvet MERGE, så Arne_v kast et svar.
Avatar billede teepee Nybegynder
01. november 2006 - 14:46 #4
Du har da vel ikke brugt not exits, du mener vel not in ikke?
Avatar billede jakobscafe Nybegynder
16. november 2006 - 14:35 #5
where not exists - nej, det er faktisk det jeg mener (Sql+) -
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester