Gullars Skrevet 18. januar 2007 Del Skrevet 18. januar 2007 Hei! Eg har 10 backupfiler frå ein tabell, og har funne ut at ulik data har blitt borte. eg vil difor ikkje berre lasta inn den siste backupen, men óg henta inn gammal backup som nå er borte, frå dei gamle tabellane. For å illustrera: Backup 1 har postar med ID 1, 2, 3, 5, 6, 8 Backup 2 har postar med ID 1, 2, 3, 4, 5 Eg lastar først inn Backup 1 vha INSERT INTO `tabell` (`ID`, `felt2`, `felt3`) VALUES (data frå backup) Korleis kan eg då lasta inn backup 2, slik at han ignorerer ID 1, 2, 3, 5 (som alle er lasta inn via backup 1)? Satsar på at de forsto forklaringa... Lenke til kommentar
roac Skrevet 18. januar 2007 Del Skrevet 18. januar 2007 Den beste løsningen er vel å lage en uniqe constraint før du setter inn data? alter table t1 add constraint t1_uk unique (id) De da innsettingene som har samme verdi som en tidligere insatt vil da feile Lenke til kommentar
Gullars Skrevet 18. januar 2007 Forfatter Del Skrevet 18. januar 2007 (endret) Hei, og takk for tipset! Eg fekk det ikkje til å fungera heilt... Eg køyrte denne: alter table wp_comments add constraint wp_comments_uk unique (comment_id) der wp_comments er tabellen og comment_id er primærnøkkel. når eg nå prøver å lasta inn "backup 2" får eg følgjande feilmelding: #1062 - Duplicate entry '307' for key 1 altså same feil som før Endret 18. januar 2007 av Gullars Lenke til kommentar
Gullars Skrevet 18. januar 2007 Forfatter Del Skrevet 18. januar 2007 nokon som kan hjelpa meg? Lenke til kommentar
Wolverin Skrevet 20. januar 2007 Del Skrevet 20. januar 2007 (endret) Hei! Eg har 10 backupfiler frå ein tabell, og har funne ut at ulik data har blitt borte. eg vil difor ikkje berre lasta inn den siste backupen, men óg henta inn gammal backup som nå er borte, frå dei gamle tabellane. For å illustrera: Backup 1 har postar med ID 1, 2, 3, 5, 6, 8 Backup 2 har postar med ID 1, 2, 3, 4, 5 Eg lastar først inn Backup 1 vha INSERT INTO `tabell` (`ID`, `felt2`, `felt3`) VALUES (data frå backup) Korleis kan eg då lasta inn backup 2, slik at han ignorerer ID 1, 2, 3, 5 (som alle er lasta inn via backup 1)? Satsar på at de forsto forklaringa... 7747151[/snapback] du kan jo her bruke følgende kode skulle jeg tro: insert into tabell('ID','felt2'felt3') select id, felt2, felt3 from tabell2 where not exists(select id, felt2, felt3 from tabell); Det du her gjør er å si at du skal hente verdien via en select i tabell2 hvor verdiene ikke er i tabell. Dette krever da at du leser backup inn i ti tabeller med forskjellig navn, og når du har kjørt alt over til en tabell, så gjør du bare en drop table tabell2...tabell10. Da står du igjen med bare en tabell. Endret 20. januar 2007 av Wolverin Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå