Gå til innhold

INSERT - korleis ignorera like postar?


Anbefalte innlegg

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...

 

:thumbup:

Lenke til kommentar
Videoannonse
Annonse

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 av Gullars
Lenke til kommentar
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...

 

:thumbup:

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 av Wolverin
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...