MySql :: if поле - первичный ключ + автоинкремент, он также должен быть определен как unsigned или mysql делает это по умолчанию? - PullRequest
1 голос
/ 06 августа 2010

MySql :: если поле является первичным ключом + автоинкремент, он также должен быть определен как unsigned или mysql делает это по умолчанию?

Edit:

  1. Я спрашиваю, потому что целое число без знака сохраняет 2 * пробел против целого числа.
  2. Я спрашиваю о INNODB. Спасибо

Ответы [ 2 ]

5 голосов
/ 06 августа 2010

MySQL не делает поля автоматического приращения неподписанными по умолчанию, и вы можете оставить его подписанным, если хотите.

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

Конечно, из-за ограничения первичного ключа вставка все равно будет неудачной, если вы попытаетесь вставить уже используемые значения идентификаторов,потому что первичный ключ также подразумевает уникальное ограничение.

2 голосов
/ 06 августа 2010

MySQL не определяет его как неподписанный по умолчанию.Значение не будет округлено до отрицательных значений, если это то, что вас беспокоит.Вставки начнут терпеть неудачу, когда у вас есть "взрыв" тип столбца.Хорошей идеей было бы использовать тип столбца, который «огромен» по сравнению с имеющимся набором данных, и тогда вам никогда не придется беспокоиться об этом.*http://dev.mysql.com/doc/refman/5.1/en/example-auto-increment.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...