Я думаю, что вы должны хранить это как немного (если вы заботитесь о размере хранения), и пусть NULL
означает «неизвестный».
field bit(1) default NULL,
Кажется странным объявить поле not null
а затем иметь особую ценность, которая, по сути, означает NULL
.
РЕДАКТИРОВАТЬ:
Следующий синтаксис «работает» на SQL Fiddle:
create table t (
val int,
flag tinyint(1) default -1
);
«Работа» находится в кавычках, потому что значение по умолчанию печатается как «1», а не «-1»-в конце концов, (1)
Говорят просто напечатать одну цифру.
Возможно, в некоторых более ранних версиях MySQL это генерирует ошибку, когда видит, что -1
не будет отображаться правильно. (Если честно, это удивило бы меня.)