Что означает" unsigned " в MySQL и когда его использовать?

Что означает "unsigned" в MySQL и когда я должен его использовать?

1 ответов


MySQL говорит:

все целочисленные типы могут иметь необязательный (нестандартный) атрибут UNSIGNED. Тип Unsigned может использоваться для разрешения только неотрицательные числа в столбце или когда вам нужен более большой верхний числовой диапазон для столбца. Для пример, если столбец INT не имеет знака, размер диапазона столбца: то же самое, но его конечные точки смещаются от -2147483648 и 2147483647 до 0 и 4294967295.

когда я его использую ?

задайте себе этот вопрос: будет ли это поле когда-либо содержать отрицательное значение?
Если ответ нет, то вы хотите UNSIGNED тип данных.

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