2010-08-14 3 views
3

Привет, ребята, я просто новичок так что извините за мой вопрос :)MySQL Предельные значения 1 и 0

Я уже пробовал использовать обугленного, TINYINT, BOOL и СНЕСК.

Вот мой СНЕСК:

CHECK (user_type>=0 AND user_type<=1) 

Но все-таки я могу вставить значения больше 1, то все, что я хочу, это только 1s и 0s. Я буду использовать его как тип своих пользователей. Хотя я могу проверить это на уровне front-end, я все равно хочу сделать это в самой базе данных.

Заранее спасибо :)

+0

Связанный: http://stackoverflow.com/questions/3414421/does-my-sql-supports-check-constraint –

+0

'INT (1)' не работает? – strager

+0

strager - столбцы 'INT' могут содержать значения, отличные от 0 и 1.' '(1)' только устанавливает ширину отображения; он не ограничивает значения, которые могут быть сохранены. Однако, если бы он сдерживал сохраненные значения, вы все равно могли бы хранить от 2 до 9. – Hammerite

ответ

3

Оговорка ПРОВЕРКА анализируется, но игнорируется всеми механизмами хранения. (Source)

Если вы действительно хотите это сделать, вы можете создать таблицу, содержащую значения 0 и 1, и установить ограничение внешнего ключа.

+0

Так что вы предлагаете сэру Марку? – Barry

+0

ahh ok, я думаю, что сделал бы это, спасибо. Снова, извините за мой вопрос, я знаю его проклятый прост вам, ребята, еще студент здесь, спасибо :) – Barry

0

Если вы действительно хотите, чтобы это ограничение выполнялось, сделайте таблицу boolconstants с этими двумя значениями и используйте ограничение внешнего ключа. Бит взлома, но работает для всех значений перечисления :)

4

set или enum как тип колыбели. затем определите значения (например: 1,0) :)

Смежные вопросы