Стойности по подразбиране за типове данни varchar и int mysql

Екранната снимка показва 3 типични дефиниции на тип данни: id (автоматично нарастване), заглавие и число.

1.- Какви са разликите между: none и NULL?
2.- Трябва ли да избера as defined: '' за типове varchar, когато искам празен низ?
3.- Трябва ли да поставя as defined: 0 стойност по подразбиране за autoincrement int видове?

въведете описание на изображението тук


person Igor Parra    schedule 15.05.2012    source източник


Отговори (1)


По подразбиране няма означава, че няма стойност по подразбиране. Ако стойност не е предоставена при вмъкване, заявката ще бъде неуспешна с „грешка без стойност по подразбиране“.

NULL е действителната NULL стойност, което означава, че ако не е предоставена стойност във вмъкване, колоната по подразбиране ще бъде NULL (празна). За varchar можете да зададете по подразбиране '', но NULL е по-добре.

Autoincrement int типове не трябва да имат стойност по подразбиране (По подразбиране: Няма), защото винаги ще има стойност.

person None    schedule 15.05.2012
comment
За допълнително пояснение, за да използвате NULL като стойност по подразбиране, колоната трябва да позволява NULL стойности. - person Marcus Adams; 15.05.2012
comment
За цели типове NULL ще вмъкне 0 (нула)? - person Igor Parra; 15.05.2012
comment
Маркъс, прав си - във вмъкване ще редактирам отговора си. - person None; 15.05.2012
comment
Друго интересно нещо, което трябва да се отбележи, е, че ако деактивирате ALLOW NULL за колона и не посочите стойност по подразбиране (NONE), тя все още ще използва стойността по подразбиране за типа (0 за INTEGER, '' за VARCHAR) за заместване NULL стойности. - person Marcus Adams; 15.05.2012