Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: testi

HellCome [15.04.2006 15:09:27]

#

No jo nyt on. Mysli pukkaa ä'ää eivätkä hoksottimet nyt enää ymmärrä. Apache2 MySQL 5.0.18-nt / XP hemma.

**

SQL-lause:

ALTER TABLE `kelijatausta` CHANGE `id` `id` MEDIUMINT( 5 ) UNSIGNED NOT NULL DEFAULT '' AUTO_INCREMENT

MySQL ilmoittaa: Ohjeet
#1067 - Invalid default value for 'id'

**

tuommoista pukkaa. Ei auta, vaikka vaihtaisi intistä isompaan tahi pienempään, ei edes pituuden muuttaminen anna tulosta. Tältähän se näyttäisi:

SARAKE - id
TYYPPI - MEDIUMINT
PITUUS - 5
AAKKOS - LATIN1
ATTRIB - UNSIGNED
TYHJÄ - NOT NULL
OLETUS -
LISÄTI - AUTO_INC

Kyllä tämä ennen on onnistunut, mutta tuliko tuon phpMyAdmin 2.7.0-pl2:n mukana jotain sittisontiaisia, vai mistä nyt kiikastaapi? Auttakkee työ maakiset velehot jos vuan suinki ossaattanna.

Olga [15.04.2006 17:17:12]

#

Niinku virheilmoitus sanoo, tuo default arvo on virheellinen. Sitä ei tarvitse edes lisätä kyselyyn kun kerran kenttä on AUTO_INCREMENT, sillä tällöinhän oletusarvo on seuraava vapaa numero.

HellCome [16.04.2006 14:18:43]

#

Niin minäkin sen olen järkeillyt, mutta ei kelpaa. Tämä on varsin merkillinen tapaus. Tarkoitus tietenkin on, että idin perusteella haetaan kulloisenkin kalareissun tiedot, mutta jostain kumman syystä MyAdmini ja mysli ovat ruvenneet keljuilemaan sen jälkeen, kun tein sellaisen hirveyden, että nappasin kopion tietokannasta, enkä ollut lopettanut mysliä vaikka niin itselleni uskottelinkin. Kyseessä oli kuitenkin ihan toinen tietokanta, mutta sen jälkeen asiat ovat ruvenneet menemään alamäkeä. "Kalat" nimistä tietokantaa ei parane edes yrittää tehdä, kun sellaisen onnistuin pilaamaan sillä kopioinnilla. Liekö jäänyt jonnekkin myslin alitajuntaan, että nyt ei kaikki ole kohdallaan, tiedä häntä, mutta jos se tulee uskoon ja alkaa tottelemaan, niin minä kerron siitä sittemmin.

phadej [16.04.2006 14:33:13]

#

Kyllähän sen defaultin voi laittaa, mutta kun kenttä on integer niin oletusarvonkin on oltava numero (eli vaikkapa nolla).

p.s. auto_increment on kyl hirviö, sequencet on paljon selvemmät (ja mysql 5.x) löytyy. Ei tarvi LAST_INSERT_ID():a käyttää, kun joskus on hyvä tietää idin ennen kuin lisää mitään, ja sequencet ovat siihen <3.

HellCome [16.04.2006 15:59:46]

#

"Maailmassa monta on ihmeellistä asiaa, ne hämmästyttää, kummastuttaa pientä kulkijaa.."

.. ja niin kävi jälleen kerran. Aina, kun yritin muuttaa id riviä, niin voe mahoton paekka, minkä metelin phpMyAdmini nostikaan (ja syytti mysliä), mutta sitten tein sen, mikä olisi pitänyt tehdä jo aiemmin, eli pudotin koko rivin pois ja tein uuden idin:

tyyppi: int(11) [osasi lisätä 11 ihan itse]
lisukkeena: auto_increment [eikös se ole incresement?]
tyypiksi: primary

Toimii jälleen! Tosin nyt jäi epäselväksi, että miksei jo ollutta idiä voinut muokata.

Vastaus

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

Tietoa sivustosta