Як встановити початкове значення та автоматичний приріст у MySQL?


288

Як встановити початкове значення стовпця "id" в таблиці MySQL, що починається з 1001?

Я хочу зробити вставку "INSERT INTO users (name, email) VALUES ('{$name}', '{$email}')";

Без зазначення початкового значення для стовпця id.

Відповіді:


518

Використовуй це:

ALTER TABLE users AUTO_INCREMENT=1001;

або якщо ви ще не додали стовпчик ідентифікатора, також додайте його

ALTER TABLE users ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    ADD INDEX (id);

2
Я усвідомлюю, що це було 7 років тому, але ... Чи можу я пояснити деталі цієї відповіді? Що ADD INDEXтут роблять? Чи потрібно додати його в тому ж самому операторі, що і idстовпець, або я можу визначити idстовпець у CREATE TABLEблоці, а потім ADD INDEX(id)?
Майкл Гофман

2
Хе, час минає ... Звичайно, визначте це у СТВОРЕННІЙ ТАБЛИЦІ, якщо ви можете це зробити. Друга частина відповіді "ALTER TABLE" означає, що ви вже створили таблицю, і вона, ймовірно, вже десь розгорнута без належного індексу, який необхідний для того, щоб перший "ALTER TABLE" працював за призначенням. Сподіваюся, це пояснення допомагає.
Анатолій

Так, це допомагає. Я дивився на деякі зразки, які використовували ці твердження аналогічним чином, і вони мають тепер більше сенсу. Дякую.
Майкл Гофман

1
Причина ADD INDEX полягає в тому, що без цього, якщо у вас вже є первинний ключ на існуючій таблиці, ви отримаєте there can be only one auto column and it must be defined as a key. Вам потрібен індекс, тому він буде ключем MUL.
djsumdog

Я спробував це на щойно створеному столі без доданих рядків. Здається, це не працює, якщо до таблиці не було додано принаймні 1 рядок.
Соломон

54

MySQL - Налаштування первинного ключа з автоматичним збільшенням, який починається з 1001:

Крок 1, створіть свою таблицю:

create table penguins(
  my_id       int(16) auto_increment, 
  skipper     varchar(4000),
  PRIMARY KEY (my_id)
)

Крок 2. Встановіть початковий номер для первинного ключа автоматичного збільшення:

ALTER TABLE penguins AUTO_INCREMENT=1001;

Крок 3, вставте кілька рядків:

insert into penguins (skipper) values("We need more power!");
insert into penguins (skipper) values("Time to fire up");
insert into penguins (skipper) values("kowalski's nuclear reactor.");

Крок 4, інтерпретуйте вихід:

select * from penguins

відбитки:

'1001', 'We need more power!'
'1002', 'Time to fire up'
'1003', 'kowalski\'s nuclear reactor'

1
Як мені це зробити, якщо я хочу встановити ідентифікатор <1000 для спеціальних пінгвінів?
Вільям Ху

1
Ви можете вставити будь-який вільний ідентифікатор, просто занесіть його до списку стовпців: insert into penguins (my_id, skipper) values(999, "explicit id");(при використанні 0замість 999значення автоматичного збільшення буде вставлено)
код коду

32

MySQL Workbench

Якщо ви не хочете писати sql, ви також можете це зробити в MySQL Workbench, клацнувши правою кнопкою миші на таблиці, виберіть у меню "Змінити таблицю ...".

Коли відкриється подання структури таблиці, перейдіть на вкладку «Параметри» (у нижній нижній частині вікна) та встановіть у полі «Автокредитування» значення наступного номера автоматичного збільшення.

Не забудьте натиснути "Застосувати", коли закінчите всі зміни.

PhpMyAdmin:

Якщо ви використовуєте phpMyAdmin, ви можете натиснути на таблицю в лівій навігації, перейти на вкладку "Операції" і в розділі Параметри таблиці змінити значення AUTO_INCREMENT і натиснути ОК.


1
Ви говорите про phpMyAdmin?
Pacerier

1
Ні, я думаю, що він говорить про MySQL Workbench.
Сатуріан

@Saturnian, так, ви праві, я мав на увазі Workbench. Я відредагую свою публікацію, щоб уточнити це.
Bojan Hrnkas

phpMyAdmin вирішив проблему з автоматичним збільшенням за один крок, я спробував пройти маршрут коду, і він не працював.
tekagami

11

Спочатку потрібно додати стовпчик для автоматичного збільшення

alter table users add column id int(5) NOT NULL AUTO_INCREMENT FIRST

Спочатку це запит на додавання стовпця. Тепер ви повинні скинути початкове значення автоматичного збільшення. Тому використовуйте цей запит

alter table users AUTO_INCREMENT=1001

Тепер ваша таблиця розпочалася з 1001


6

Ви також можете встановити це у create tableвиписці.

`CREATE TABLE(...) AUTO_INCREMENT=1000`

5

Також у PHPMyAdmin ви можете вибрати таблицю з лівої сторони (список таблиць), а потім зробити це, перейшовши туди.
Вкладка "Операції" -> Параметри таблиці-> AUTO_INCREMENT.

Тепер, встановіть свої значення, а потім натисніть Перейти під Параметри таблиці Bo x.


4

Для цього вам потрібно встановити AUTO_INCREMENTзначення

ALTER TABLE tablename AUTO_INCREMENT = <INITIAL_VALUE>

Приклад

ALTER TABLE tablename AUTO_INCREMENT = 101

3

Крім того, якщо ви лінуєтеся написати запит SQL. Тоді це рішення для вас. введіть тут опис зображення

  1. Відкрийте phpMyAdmin
  2. Виберіть потрібну таблицю
  3. Клацніть на Операції вкладку
  4. Встановіть бажане початкове значення для AUTO_INCREMENT
  5. Готово ..!
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.