Avatar billede dj-hupi Nybegynder
18. december 2005 - 14:45 Der er 14 kommentarer og
2 løsninger

Update 2 tabeller til samme id og slet dubleringer

Hejsa..

Jeg har 1 tabel med ca 200.000 poster.

Der er 3 felter med id_art, slaegt og art
Desværre er der dubleringer i af felt: slaegt.
Jeg ville jo gerne have delt det op i 2 tabeller med:
Tabel 1:
id, slaegt
Tabel 2:
id, art, id_slaegt

Nogen god idé til hvordan det kan laves med en sql streng som bare kan fyres af i MySQL ? :)

Rasmus
Avatar billede nielle Nybegynder
18. december 2005 - 22:42 #1
Skal det være udelukkende i SQL? Har du mulighed for at gå via PHP?
Avatar billede dj-hupi Nybegynder
19. december 2005 - 07:07 #2
Uh det ligger på en asp server .. Men hvis det er bedst såå kom med dit bud :)
Avatar billede arne_v Ekspert
19. december 2005 - 10:21 #3
Prøv:

INSERT INTO tabel1(slaegt) SELECT DISTINCT slaegt FROM gamletabel

INSERT INTO tabel2(id_slaegt,art) SELECT tabel2.id,gamletabel.art FROM tabel2,gamletabel WHERE tabel2.slaegt=gamletabel.slaegt

(forudsætter auto increment id's)
Avatar billede nielle Nybegynder
19. december 2005 - 19:19 #4
Prøv først arne_v's kode, og hvis den ikke klare problemet for dig, så skal jeg gerne lave en ASP-løsning.

Jeg gik bare ud fra at det var PHP idet at det normalt er det der bruges sammen med MySQL. Man skal passe på med at antage for meget. ;^)
Avatar billede dj-hupi Nybegynder
25. december 2005 - 12:13 #5
INSERT INTO tabel1(slaegt) SELECT DISTINCT slaegt FROM gamletabel
Har jeg fået til at virke ...
Jeg mangler lige at lægge krafter i den anden streng.. Men der er lige kommet noget andet op ;)
Avatar billede nielle Nybegynder
08. januar 2006 - 12:33 #6
Har du fået løst resten af problemet endnu?
Avatar billede dj-hupi Nybegynder
20. januar 2006 - 12:58 #7
Jaa nielle jeg har prøvet den første som fungere men kan ikke få den anden til ..
Avatar billede nielle Nybegynder
20. januar 2006 - 19:25 #8
Hvis du prøver med dette:

INSERT INTO tabel1 (slaegt) SELECT DISTINCT slaegt FROM gamletabel

INSERT INTO tabel2 (art, id_slaegt) SELECT gamletabel.art, tabel1.id FROM gamletabel, tabel1 WHERE tabel1.slaegt=gamletabel.slaegt

- går det så stadigvæk galt?

Og hvis det gør: Hvordan går det galt? Hvad havde du forventet at der skete? Hvad kommer der af fejlmeddelelser? Den slags information.
Avatar billede dj-hupi Nybegynder
21. januar 2006 - 21:13 #9
Nielle nu skete der noget .. Men ..
Fejl
SQL-forespørgsel:

INSERT INTO ny_art_ok( art, id_slaegt )
SELECT slaegt_art.art, ny_slaegt_ok.family_ID
FROM slaegt_art, ny_slaegt_ok
WHERE ny_slaegt_ok.family_NAME = slaegt_art.slaegt
MySQL returnerede: 

#1053 - Server shutdown in progress 

Den når at tage ca 17000 poster men det er jo ikke ret mange :(
Avatar billede nielle Nybegynder
21. januar 2006 - 21:36 #10
Får du den konsekvent hver gang at du forsøger?
Avatar billede dj-hupi Nybegynder
22. januar 2006 - 13:25 #11
Ja .. :(
Avatar billede arne_v Ekspert
23. januar 2006 - 14:28 #12
jeg formoder at du ikke slev lukker ned

saa check for fejl i log
Avatar billede dj-hupi Nybegynder
18. juni 2006 - 14:23 #13
Okey takker lav lige svar begge såå kan jeg lukke ;)
Avatar billede arne_v Ekspert
18. juni 2006 - 16:13 #14
ok
Avatar billede nielle Nybegynder
18. juni 2006 - 16:18 #15
Svar :^)
Avatar billede arne_v Ekspert
06. oktober 2006 - 04:06 #16
så mangler du bare at acceptere svarene
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