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

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

Ответ 1

MySQL говорит:

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

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

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

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