MySQL-tietokannassa on n. puoli miljoonaa riviä ja nyt sinne lorahti rapiat 47000 riviä tuplasti. Miten nuo tuplat saa kätevimmin pois?
duplikaatit
3
1571
Vastaukset
- I.Proqatlis
1. Luo aputaulu, joka on alkuperäisen taulun kopio.
2. Siirrä alkuperäisen taulun sisältö aputauluun valitsemalla vain uniikit rivit alkuperäisestä taulusta. Malli:
insert into aputaulu (sarake1, sarake2, sarake3)
select distinct sarake1, sarake2, sarake3 from oikeataulu;
3. Aseta aputaulu alkuperäisen tilalle.
Millainen tietokanta sinulla oikein on?? Se ei ole relaatiomallin mukainen, jos sinne pystyy tekemään duplikaatteja. Yksi relaatiomallin perussäännöistä - koskien tiedon yhtenäisyyttä eli integriteettiä - on, että jokainen rivi taulussa on uniikki. Tämä hoidetaan valitsemalla sopiva avain, joka estää duplikaattien syntymisen!- Xcvt
"Se ei ole relaatiomallin mukainen, jos sinne pystyy tekemään duplikaatteja. Yksi relaatiomallin perussäännöistä - koskien tiedon yhtenäisyyttä eli integriteettiä - on, että jokainen rivi taulussa on uniikki. Tämä hoidetaan valitsemalla sopiva avain, joka estää duplikaattien syntymisen!"
Kyllä mielestäni relaatiomallin mukaiseen tauluun voi vahingossa tehdä duplikaatteja. Tai se mitä yleensä dublikaatilla tarkoitetaan kansantajuisesti, sanatarkastihan silloin ei ole kyseessä dublikaatti koska esim id on eri.
Tuo I.Proqatlisin ehdotus toimii vain jos sinulla ei ole samoja tietoja tauluissa ennen tuota vahinkoa. Mikäli on, niin silloin tuo poisto on vaikeeta koska sinun pitää tietää mitkä sinne todella kuuluu ja mitkä ei. Ehkä helpointa olisi tehdä DELETE kysely noilla tiedoilla mitkä tuli tuplasti ja sit tiedot uudestaan mikäli vain mahdollista.
Tietenkin jos tieto on jotenkin aikasidottua niin silloinhan I.Proqatlisin ehdotus toimii WHERE ehdoilla.
Siis
insert into aputaulu (sarake1, sarake2, sarake3, lisätty)
select distinct sarake1, sarake2, sarake3, lisätty from oikeataulu WHERE lisätty = '28-2-2007';
ja
insert into aputaulu (sarake1, sarake2, sarake3, lisätty)
select sarake1, sarake2, sarake3, lisätty from oikeataulu WHERE lisätty != '28-2-2007'; Xcvt kirjoitti:
"Se ei ole relaatiomallin mukainen, jos sinne pystyy tekemään duplikaatteja. Yksi relaatiomallin perussäännöistä - koskien tiedon yhtenäisyyttä eli integriteettiä - on, että jokainen rivi taulussa on uniikki. Tämä hoidetaan valitsemalla sopiva avain, joka estää duplikaattien syntymisen!"
Kyllä mielestäni relaatiomallin mukaiseen tauluun voi vahingossa tehdä duplikaatteja. Tai se mitä yleensä dublikaatilla tarkoitetaan kansantajuisesti, sanatarkastihan silloin ei ole kyseessä dublikaatti koska esim id on eri.
Tuo I.Proqatlisin ehdotus toimii vain jos sinulla ei ole samoja tietoja tauluissa ennen tuota vahinkoa. Mikäli on, niin silloin tuo poisto on vaikeeta koska sinun pitää tietää mitkä sinne todella kuuluu ja mitkä ei. Ehkä helpointa olisi tehdä DELETE kysely noilla tiedoilla mitkä tuli tuplasti ja sit tiedot uudestaan mikäli vain mahdollista.
Tietenkin jos tieto on jotenkin aikasidottua niin silloinhan I.Proqatlisin ehdotus toimii WHERE ehdoilla.
Siis
insert into aputaulu (sarake1, sarake2, sarake3, lisätty)
select distinct sarake1, sarake2, sarake3, lisätty from oikeataulu WHERE lisätty = '28-2-2007';
ja
insert into aputaulu (sarake1, sarake2, sarake3, lisätty)
select sarake1, sarake2, sarake3, lisätty from oikeataulu WHERE lisätty != '28-2-2007';Tarkennuksena, tietueita onkin n. 1,2 milj. Sarakkeita on 105. Jokainen tietue on erilainen lukuunottamatta niitä 47000 kpl jotka ovat siis kahteen kertaan. Kiitos tähän astisista neuvoista.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
6 kW saunan lämmityksestä kohta 10 euron lisämaksu / kerta
Kokoomuslainen sähköyhtiöiden hallitsema Energiavirasto ehdottaa 5 kW:n rajaa, jonka ylittämisestä tulee lisämaksu. Tark2267067Minja jytkyttää vas.liiton kannatusta ylöspäin
Alkaa raavaat duunarimiehetkin palaamaan vasemmistoliiton kannattajiksi. Eduskunnassahan on vain kaksi työntekijöiden p3554988"Mitä sä nainen tuot sitten pöytään" ?
Jos mies provaidaa ja suojelee... Pitääkö miesten kysyä tuollaisia?1503730Duunarit hylkäsivät vasemmistoliiton, siitä tuli feministinaisten puolue
Pääluottamusmies Jari Myllykoski liittyi vasemmistoliittoon, koska se oli duunarien puolue. Sitä samaa puoluetta ei enää1313555Ekologinen kommunismi tulee voittamaan fossiilikapitalismin
Kiina on mahtitekijä uusiutuvien energialähteiden kehityksessä, ja Trump osoitus viimeisestä öljyn perään itkemisestä, m763456Mies, kerro minulle vielä jotakin aivan uniikkia
ja ainutlaatuista minkä vain me kaksi voisimme ymmärtää jos olemme sen kokeneet ja eläneet, jotta ihan varmasti tietäisi572980Hyviäkin uutisia tulossa, hallinto-oikeus asettaa toimeenpanokieltoon
Hyvinvointitalon työmaa pysähtyy. Rillankivi+energia ja vesi kytkyrahanpesu stoppaa. Tytäryhtiöiden hallitusjäsenet+kon2702779Oikeistopuolueiden kannatus vain 37,8 %, vasemmiston 43,0 %
Keskustaan jää 17,4 prosenttia ja loput ovat sitten mitä ovat. Mutta selvästikin Suomen kansa on vasemmalle kallellaan.842490- 252416
Oppiiko vasemmistolaiset valehtelun jo kotonaan?
Sillä vasemmistolaiset/äärivasemmistolaiset valehtelee ja keksii asioita omasta päästään todella paljon. Esim. joku vas1132112