Głupie zachowanie MySQL
Posted by Jarosław Zabiełło Sun, 31 Dec 2006 04:16:00 GMT
Jak ktoś chce się pośmiać z MySQL, to niech zajrzy tutaj. Sprawdzałem nawet na najnowszym stabilnym MySQL 5.0.27. Czasem można dodać rekord o tym samym kluczu głównym, a czasem nie można. Po prostu obciach.


Kanały IRC![[Dilber w Onecie]](/images/larry.png)


Nic głupiego, taki ficzer że jak masz 0 albo NULL to leci z auto_increment. Wszystko jest w manualu. Szczęśliwego!
Ale to normalne zachowanie. Co w tym ‘obciachowego’ ?
hmmm .. no ja cię przepraszam, ale podmienianie podanej wartosci na inną to zdecydowanie nie jest normalne zachowanie. jeszcze jestem w stanie zrozumiec podmiane null’i (aczkolwiek w/g mnie to i tak zle), ale podmiana “zero” na cos innego?
Ale to jest opisane w manualu. Jak chcesz możesz sobie skonfigurować żeby dialekt sql był bardziej “koszerny” (NO_AUTO_VALUE_ON_ZERO). Wtedy tylko null będzie przyjmować.
@depesz: taka opcja występuje tylko dla kolumn auto_increment-owanych. To kolumna specjalnego typu, i jako taką należy ja traktować. Jak to Tomasz Bielecki napisał: wystarczy czytać manual, i w razie potrzeby – wyłączyć.
No, dokładnie – nigdy nie można “dodać rekordu o tym samym kluczu głównym”, nie można natomiast dodać rekordu o kluczu 0. Nawet manual nie jest potrzebny, wystarczy uważnie przeczytać to co napisał ten gość na ex-parrot.
Ale rozumiem że wg Jarka MySQL jest do bani, liczy się tylko Ruby On Rails ;)
Bartek
Bartek, bez jaj :) Używam MySQL jeśli o to chodzi (głównie ze względu na prostotę i świetne collations)
To zachowanie MySQL o którym napisałem jest wg mnie głupie. Nie tyle może to błąd (bo faktycznie, w dokumentacji jest o tym info), ale na pewno to jakaś niespójność. Bo po co takie rozróżnianie na zero, null i nie-null? Chyba wszystkie inne bazy mają null vs. wszystko, co niej jest równe null.
To takie PHP’owe. Aby jak najmniej błędów było widać.
MySQL – prawie jak RDBMS ;)
Prawie – robi różnicę. :) Może oni chcą wprowadzić jakieś elementy fuzzy logic? ;)