Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: SQL, taulun tyhjennys

Sivun loppuun

Jaska [15.08.2011 21:46:52]

#

Opettelen SQL:ää ja mulla on taulu, jossa on kenttiä ja niiden tyypit tiedossa. Nyt haluaisin kokeiluvaiheessa tyhjentää taulun kaikesta kokeiludatasta. Onko tähän muuta vaihtoehtoa kuin dropata taulu ja luoda uusi? Jos ei ole, niin saanko SQL:ssä selville taulun kenttien tietotyypit, avaimet ja not nullit?

Metabolix [15.08.2011 21:56:57]

#

DELETE FROM taulu ilman ehtoja, oliko vaikea arvata? :)

Edit: AUTO_INCREMENT ei toki nollaudu tästä, mutta eihän id:llä sinänsä ole väliä.

Jaska [15.08.2011 22:00:14]

#

Ahaa. Enpäs hoksannut koettaa tuota.

Torgo [16.08.2011 14:46:29]

#

Ainakin pSQL:ssä toimii myös DELETEä nopeampi TRUNCATE <taulu>. Ei taida tosin kuulua standardi SQL:ään.

Macro [16.08.2011 15:31:24]

#

TRUNCATE-komento ainakin nollaa AUTO_INCREMENT-arvot.

Metabolix [16.08.2011 15:34:59]

#

Joo, TRUNCATE on parempi ratkaisu, mutta DELETE ilman ehtoja on temppu, jonka kuka tahansa voisi keksiä ominkin neuvoin.

Eikä sen droppaamisenkaan mahdottoman vaikeaa pitäisi olla. Et kai sentään ole käsin kirjoittanut luontikyselyitä? Kannattaisi laittaa ne tiedostoon (tai tehdä koko työ jollain työkalulla kuten MySQL Workbenchilla).

Jaska [16.08.2011 19:18:34]

#

Sainkin halutun lopputuloksen update-käskyllä sijoittamalla nullit kyseiseen kenttään, kun deleteen ei näköjään voikaan laittaa kenttäkohtaista poistoa.

Metabolix kirjoitti:

Et kai sentään ole käsin kirjoittanut luontikyselyitä? Kannattaisi laittaa ne tiedostoon (tai tehdä koko työ jollain työkalulla kuten MySQL Workbenchilla).

En tehnyt käsin. Mietin joitakin tiedostosysteemejä, mutta siinä pitäisi parsia Excel-tiedostosta kenttien nimet ja tyypit. Onnistuin käyttämään erästä skriptiä, joka vaatii vähän manuaalista säätöä jälkikäteen, mutta ratkaisu osoittautui toimivaksi.

Metabolix [16.08.2011 19:23:18]

#

NULL yksittäisen sarakkeen arvona on aivan eri asia kuin poistaminen. NULL on aivan kelvollinen arvo muiden joukossa.

Jotenkin kuulostaa tietokannan väärinkäytöltä (paitsi joissain erikoistapauksissa), että olisi joukko valmiita rivejä, joita sitten vain muokkaillaan. Mutta omapa on softasi.

Jaska [16.08.2011 20:03:53]

#

Väärinkäyttöä tai ei, mutta mun piti lisätä tietokantaan eräs sarake ja laskea siihen arvoja muista kentistä. Tein bugin, jolloin tuohon ekstrakenttään tuli väärä satunnainen arvo useaan kohtaan, sillä päivitys tapahtui luupissa. Ajattelin ensin, että saan deleten avulla poistettua vain ekstrakentän, jolloin voin tehdä uuden tyhjän kentän, mutta update osoittautuikin miettimisen jälkeen toimivaksi ratkaisuksi.

Metabolix [16.08.2011 20:07:17]

#

Miksi se sitten piti nollata, mikset vain laskenut tilalle uusia arvoja silmukassa, kuten ensimmäiselläkin kerralla? Ei aina tarvitse tehdä asioita mahdollisimman mutkikkaasti. :)

Jaska [16.08.2011 20:12:16]

#

Aivot tuntui olevan solmussa.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta