ugrás a tartalomhoz

MySQL NOT NULL Mező

Mekk · 2003. Nov. 21. (P), 20.09
Sziasztok !
MySQL 4.0.15 verzióját használom Win környezetben, és sajnos belefutottam egy bosszantó problémába...lehet hogy Server BUG-ba ?
Amely a következő: Ha olyan táblát hozok létre amelyben nem engedem meg, hogy NULL értéket vegyenek fel a mezők (pl: NAME varchar(10) NOT NULL ) akkor ha új record INSERT-kor mégis NULL értéket közlök, azaz elfelejtek értéket adni a mezőnek, nem kapok hibajelzést, és az új recordban az a mező amely elvileg nem vehet fel NULL értéket mégis üres, adat nélküli lesz. Ez vajon programhiba vagy valamit még nem jól állítottam be a szerveren ? Aki tud légyszives segítsen.. Üdv... Mekk
 
1

Re: MySQL NOT NULL Mező

Bártházi András · 2003. Nov. 21. (P), 22.58
Ez egy "feature" a MySQL-ben, dokumentálva van (arról lehet vitatkozni, hogy jó-e, vagy rossz-e, de felesleges :). Szóval ilyenkor a alapértelmezett érték szúródik be az adott cellába.
2

Re: MySQL NOT NULL Mező

Mekk · 2003. Nov. 23. (V), 16.45
Ha nem működik akkor minek enged olyan táblát létrehozni amiben a mezőknek a tulajdonságárt NOT NULL -ra is be lehet állítani ? A MySQL hibajkódjában minek szerepel az ,hogy az ilyen tulajdonsággal rendelkező mezőnek mindenképpen értéket kell adni ? Ha úgysem figyelmeztet a hiányos adatbavitelre ? Na mindegy majd kliens oldalon megoldom az ellenőrzést.
3

Re: MySQL NOT NULL Mező

Bártházi András · 2003. Nov. 23. (V), 21.39
Helytelen megállapítás az, hogy nem működik. Működik. Le van dokumentálva, hogy hogyan: a default értéket szúrja be. Nekem ez tetszik, sok embernek nem... :)

A MySQL hibakódjai között valószínűsítem, hogy azért szerepel, mivel UPDATE-kor ellenőriz, ha jól emlékszem.

Kliens oldalon (itt most gondolom nem a böngészőre, hanem a szerver oldali programra gondolsz) pedig mindig jó, ha ellenőrzöd, márcsak például azt is, ne írjon be túl sokat a user (megír egy 50.000 oldalas fogalmazványt, aztán csak néz, hogy mi van, mert nálad 1.000 karakteres az adott mező...).
4

Re: MySQL NOT NULL Mező

Mekk · 2003. Nov. 24. (H), 22.50
Igen..igen... én csak abba kötöttem bele, hogy enged a MySQL olyan mezőket létrehozni ahol nem adsz meg default értéket. Ekkor üresen hagyja azt az adatmezőt. Ez felfogható annak, hogy ott NULL értékű adat van. pl: DATA VARCHAR(10) NOT NULL egy adatmező ami helyesen ha a MySQL konzekvens lenne akkor csak a következőt tekinthetné szintaktikailag helyesnek pl2: DATA VARCHAR(10) NOT NULL DEFAULT 'üres' . Vagy rosszul okoskodtam ?
5

Re: MySQL NOT NULL Mező

Bártházi András · 2003. Nov. 25. (K), 08.28
Nem, és ezzel egyet tudok érteni... :)