(MySQL) Дефолтное значение в tinyint

R
На сайте с 13.06.2009
Offline
47
1581

Есть скрипт, который передает из формы значение checkbox (значение - 0). Т.к. это checkbox, то значение соответственно может быть передано, а может и нет.

Есть таблица в БД с полем tinyint (длина значения 1) с дефолтным значением 1.

Когда я не передаю значение checkbox (т.е. переменная, которая должна принять это значение остается пустой - '') и соответственно в запросе к БД она тоже пустая. Значит по идее в в поле tinyint должно остаться дефолтное значение (иначе нахрен оно там), но как бы не так - в поел появляется 0.

Что это, глюк какой-то или я чего-то недопонимаю с дефолтными значениями?

[Удален]
#1

Дефолтное значение применяется только если поле в инсерте совсем не указано, или же, если мне не изменяет память, если в это поле пихаешь NULL(а не '')

skAmZ
На сайте с 04.09.2009
Offline
122
#2

Значение по умолчанию присваивается, если значение не присваивается вовсе, однако пустое значение тоже значение. Советую перед вставкой провеять, если значение пустое, то ставить «1».

P.S. или же не присваивать это значение вовсе, если требуется значение по умолчанию.

skAmZ добавил 27.02.2010 в 12:32

Talamat, NULL тоже может быть в качестве значения, если не указано not null в свойстве поля, а если указано, то будет ошибка MySQL)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий