BonBonSlick
@BonBonSlick
Junior Web Developer Trainee

Что если int PK равен 0?

Мне даже в голову не приходило лепить 0 как ID первой записи.
Что будет если ставить 0 как ID для первой записи?
Возможные ошибки?
Почему auto inc int PK начинаеться с 1?
  • Вопрос задан
  • 79 просмотров
Решения вопроса 3
Melkij
@Melkij
PostgreSQL DBA, contributor
Да хоть с INT_MIN начинать, счётчику без разницы тикать от 0, от 1, или от -2147483648.
Единица просто дефолтное стартовое значение в большинстве реализаций (мне не известны примеры такого, но они возможны).
Ответ написан
@d-stream
Готовые решения - не подаю, но...
Не лучшая, но достаточно распространенная практика - использовать 0 как "нет значения".
Ноги растут из кучи библиотек/фреймворков в которых пустое значение визуальных элементов не могло быть null, а было нулём...
Поэтому в каких-нибудь чужих системах заложившись на ноль - можно огрести проблемы... а в остальном как уже отметили - есть диапазон от min_int до max_int равнозначимых с точки зрения pk значений, некоторым из которых можно в своих фобиях придать особый смысл (например пропускать id=13, id=666 и т.п.)
Ответ написан
tsklab
@tsklab
Здесь отвечаю на вопросы.
Почему auto inc int PK начинается с 1?
По аналогии с физическим миром, где "первый" это "один".
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы