MySQL-tietokannassa on n. puoli miljoonaa riviä ja nyt sinne lorahti rapiat 47000 riviä tuplasti. Miten nuo tuplat saa kätevimmin pois?
duplikaatit
3
1580
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
Riikka ei suostu laskemaan bensan hintaa
Sanna laski esimerkiksi sähkön arvonlisäveron 10 prosenttiin, jonka Riiikka anosti 25,5 prosenttiin. Sannan aikaan bens1263579EK: Suomi tarvitsee vuosittain 45 000 maahanmuuttajaa
Senpä takia Riikkakin laulaa sen lauluja kenen leipää syö. Viime vuonnahan Suomeen muutti 50 tuhatta ulkomaalaista. htt2252558Kesäaika on normaaliaika...
...siten illalla on valoisaa tunnin pitempään, on sitten kesä tai talvi. Voi nauttia päivän jatkumisesta. Kuka nyt aamul2141995Uusin tutkimus: Suomi on maailman toiseksi vähin rasistinen maa
taakse jää mm. Ruotsi(7) ja Norja(8). Martin Paasi(kok.): Kumoaa vasemmiston väitteet. Kansainvälinen vertailu osoitta561839Ähtärin päättäjät
Nyt tulee kutsu leivättömän pöydän äärelle. Syytteet nostetaan. https://www.iltalehti.fi/kotimaa/a/cef83309-0a1b-4fcd-9b531202Tulen hulluksi hänestä
Hän on vanha ja varattu. Mutta olen ihan hulluna häneen. Haluan hänet omakseni. Haluan olla hänen kanssaan ajasta ikuisu671017Ketkä 8 Ähtärin luottamushenkilöä saivat syytteen virka_aseman väärinkäyttämisestä?
Nyt näiden valtuutettujen nimet esiin, kiitos! Nämä henkilöt pitää yksinkertaisesti laittaa syrjään Ähtärin kaupunginva20960- 109889
Koulussa puukotus
Tapuli kaupungissa, ollaanhan me maailman onnellisin kansa. Voi puhäjysäys.. millä mittarilla onnellisuus on mitattu,, p28835Ensimmäinen kuukausi palkatatta
Siis ei jumankauta näitä kokoomuksen ehdoituksia. Nytkin joku Otto Meri ehdoittaa, että ensimmäinen kuukausi pitäisi ty73798