MySQL - авто_инкремент на 10 - PullRequest
       10

MySQL - авто_инкремент на 10

1 голос
/ 18 февраля 2011

Как установить столбец auto_increment таким образом, чтобы он увеличивался на 10 для каждой вставки записи.

Например: вместо значения по умолчанию auto_increment на 1,

insert into temptable (name) values('abc'),('def');

select * from temptable;
  id|name
  1|abc
  2|def

auto_increment by 10,
  id|name
  10|abc
  20|def

Ответы [ 4 ]

2 голосов
/ 18 февраля 2011

Я не уверен, зачем вам это нужно, но если вы хотите получить этот результат на выходе, вы можете просто умножить значение на 10

2 голосов
/ 18 февраля 2011

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

Хотя обычно это не очень хорошая идея.Вы ищете для создания номеров счетов или что-то?В этом случае вам лучше использовать пользовательский метод, который генерирует следующее число.

1 голос
/ 18 февраля 2011

Вы можете отключить auto_increment и добавить триггер.Установите другую таблицу с одним значением, следующим идентификатором, а затем установите для идентификатора вставленной строки значение этой таблицы:

CREATE TABLE next (next_id int not null);
INSERT INTO next VALUES(0);

delimiter |

CREATE TRIGGER update_id BEFORE INSERT ON temptable
  FOR EACH ROW BEGIN
    SET NEW.id = (SELECT next_id FROM next);
    UPDATE next SET next_id = next_id + 10;
  END;
|
delimiter ;
0 голосов
/ 01 июня 2019

Если у вас уже есть свои идентификаторы и вы хотите увеличить их на '10 на 10 ', следуйте идее Назария и используйте текущие идентификаторы и умножьте их на 10 с помощью

update xyourtablex set id=id*10000

или большее число, чем ваши идентификаторы (если нет, вы создадите дубликаты) и наконец:

update xyourtablex set id=id/1000

или просто удалите уникальный или индекс, умножьте на 10 и снова добавьте индекс или уникальный:)

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