[ biske86 @ 26.09.2010. 15:00 ] @
Da li je moguće da stavim ogranicenje nad nekom kolonom da recimo ne mogu da se unose prazni stringovi? Recimo za kolonu IME ako neko pokuša da ubaci prazan string '' trebalo bi da se izbaci greška.
[ Nikola Poša @ 26.09.2010. 18:42 ] @
Ako sam dobro razumeo tvoje pitanje, rešenje je da ta neka kolona koja je tipa string, NE bude NULL-abilna, tačnije, ona bi trebala da bude kreirana sa NOT NULL klauzulom.

edit: Doduše, i pored toga će moći da se unose prazni string-ovi. U prilog tome ide ovaj citat iz manual-a:
Citat:
A common error when working with NULL is to assume that it is not possible to insert a zero or an empty string into a column defined as NOT NULL, but this is not the case. These are in fact values, whereas NULL means “not having a value.”

Tako da, jedino rešenje je da u domain logici sprečiš unošenje praznog stringa.
[ biske86 @ 26.09.2010. 21:47 ] @
Mene je interesovalo ovo za prazan string. Hvala.

A da li mogu da proverim da mi neko ne stavi umesto int parametra string. Da li mogu iz procedure da nekako proverim parametar i da vidim da li je stvarno integer ili je string?
[ bogdan.kecman @ 27.09.2010. 00:12 ] @
nad kolonom moze samo tako sto ces za update/insert da napravis trigger koji ce da proveri da li je prazan string ili ne i da "kuka" ako je prazan sktring

sto se tice int parametra, ako ga koristis kao int mysql ce odraditi implicitnu konverziju tako da ce "123a" biti 123 a "a123" biti 0 .. ti pri kreiranju procedure definises kog su ti tipa parametri i ne razmisljas sta ce korisnik da posalje (ako za int posalje string taj string ce biti nula ako pocinje bilo cim osim cifrom) tako da ti ne treba da brines za "tip" podataka koji dolazi, samo za "sadrzaj"