MySQL-tietokannassa on n. puoli miljoonaa riviä ja nyt sinne lorahti rapiat 47000 riviä tuplasti. Miten nuo tuplat saa kätevimmin pois?
duplikaatit
3
1506
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
- 1562821
En kai koskaan saa sinua
Koska et usko että riitäisit minulle. Olet aina pitänyt itseäsi liian risana ja heikkona. Katkot korkeutesi, ja poraat k1541719Terveystalon lääkärit ylilaskuttaneet
Tämän pörriäiset osaavat, laskuttamisen. Terveystalo myöntää asian. https://www.hs.fi/suomi/art-2000011134269.html "K1461694Saran ökytyyli käänsi katseita.
On nyt kyllä Sara kasvoistaan, kuvan perusteella todellakin pyöristynyt ainakin kuvan perusteella.1511459- 721420
Työttömille lusmuille luvassa lisää keppiä
Hallitus aikoo kiristää velvoitteiden laiminlyönnistä seuraavia työttömyysturvan karensseja ensi vuodesta alkaen. Hall3251308The Summit Suomi: Maxie avaa hyytävästä tilanteesta kuvauksissa: "Veri roiskui ja tajusi, että..."
Oletko seurannut The Summit Suomea? Tykkäätkö vai et tai mitä mieltä ylipäätään olet sarjasta? Moni katsoja on kaikonnut181211Tekisi niin mieli laittaa sulle viestiä
En vaan ole varma ollaanko siihen vielä valmiita, vaikka halua löytyykin täältä suunnalta, ja ikävää, ja kaikkea muuta m661026- 1561016
Miksi ihmeessä?
Erika Vikman diskattiin, ei osallistu Euroviisuihin – tilalle Gettomasa ja paluun tekevä Cheek25985