Авто приращение в phpmyadmin - PullRequest
81 голосов
/ 14 апреля 2011

У меня есть существующая база данных, использующая PHP, MySQL и phpMyAdmin.

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

Могу ли я установить для первичного ключа значение auto_increment в моей пользовательской таблице и установить его значение 10000, а затем автоматически увеличивать его при каждой регистрации члена?

Кроме того, есть лимаксимальное число, до которого может доходить идентификационный номер первичного ключа?

Является ли это надежным и безопасным способом использования идентификационного номера первичного ключа в качестве номера участника?

Ответы [ 8 ]

180 голосов
/ 22 сентября 2013

Есть шаги, чтобы сделать автоинкримент для колонки.Я думаю, что версия phpMyAdmin 3.5.5, но не уверен.

Нажмите Таблица > Структура * вкладка 1008 *> Под Действие нажмите Изменить напрокрутите окно ppoup влево и проверьте A_I .Также убедитесь, что вы выбрали Нет для По умолчанию enter image description here

51 голосов
/ 14 апреля 2011

В phpMyAdmin перейдите к рассматриваемой таблице и перейдите на вкладку «Операции». Слева в разделе «Параметры таблицы» вам будет разрешено установить текущее значение AUTO_INCREMENT.

20 голосов
/ 14 апреля 2011

Просто запустите простой запрос MySQL и установите номер автоматического приращения на то, что вы хотите.

ALTER TABLE `table_name` AUTO_INCREMENT=10000

С точки зрения максимума, насколько я знаю, нет ни одного, и нет никакого способа ограничить такое число.

Совершенно безопасно, и обычной практикой является установка идентификатора в качестве первичного ключа с автоматическим приращением int. Существуют альтернативы, такие как использование PHP для генерации номеров участников в определенном формате, а затем проверка номера не существует до вставки, однако для лично для меня я бы выбрал первичное значение id auto_inc.

7 голосов
/ 20 февраля 2015
  1. Во вкладке "Структура" вашей таблицы
  2. Нажмите на карандаш нужной вам переменной auto_increment
  3. на вкладке «Дополнительно» выберите «auto_increment»
  4. затем перейдите на вкладку «Операции» вашей таблицы
  5. В разделе «Параметры таблицы» -> тип auto_increment -> 10000
2 голосов
/ 14 апреля 2011

В phpMyAdmin, если вы установите в своей таблице поле с автоматическим приращением, а затем вставите строку и установите значение этого поля равным 10000, оно продолжится оттуда.

1 голос
/ 22 мая 2017

@ AmitKB, ваша процедура правильная. Хотя эта ошибка

Ошибка запроса: # 1075 - Неверное определение таблицы; может быть только один автоматический столбец, и он должен быть определен как ключ

можно решить, сначала пометив поле как ключ (используя значок ключа с меткой основной), если у вас нет другого ключа, тогда он может не работать.

0 голосов
/ 14 июля 2019

Это связано с таблицами wp_terms, wp_termmeta и wp_term_taxonomy, для которых все их идентификаторы не установлены на AUTO_INCREMENT

. Для этого перейдите в phpmyadmin, щелкните по базе данных концерна., wp_terms таблица, нажмите на вкладку структуры, справа вы увидите вкладку с именем A_I(AUTO_INCREMENT), проверьте ее и сохраните (Вы делаете это только для первого варианта, в случае wp_term вы делаете это толькодля term_id).

Сделайте то же самое для wp_termmeta и wp_term_taxonomy, чтобы устранить проблему.

0 голосов
/ 14 апреля 2011

Вы не можете установить максимальное значение (кроме выбора типа данных, который не может содержать большие числа, но нет ни одного, который имеет ограничение, которое вы запрашиваете).Вы можете проверить это с помощью LAST_INSERT_ID () после вставки, чтобы получить идентификатор только что созданного члена, и, если он слишком большой, обработать его в коде приложения (например, удалить и отклонить член).

ПочемуВы хотите верхний предел?

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