Как добавить строку строки в инкремент id в любой таблице?

У меня есть таблица MySQL с таблицей заказов в БД, эта таблица имеет идентификатор с автоматическим инкрементным расширением. До сих пор у нас есть общий цифровой идентификатор Order-ID аналогично 1,2,3,4,5 … Отныне я должен добавить серию A20 к моему id, например A20103, A20104, A20105 и так далее, и когда последний три цифры достигают 999, добавленная серия должна быть изменена на A21001, A21002, A21003 и т. д., то же количество должно быть добавлено в ранее добавленные заказы ..

Как я могу достичь этой задачи? пожалуйста, направляйте

Solutions Collecting From Web of "Как добавить строку строки в инкремент id в любой таблице?"

что-то вроде:

 "AR2" . str_pad((int) $ordernumber, 4, "0", STR_PAD_LEFT); 

Джим

[edit] – я предполагаю, что это предназначено для показа, как указано в другом месте, поле ID в БД целое!

Изменение существующего столбца auto_increment не похоже на хорошую идею – вам действительно нужно это делать? Вместо этого, почему бы просто не изменить ваш запрос выбора, чтобы вернуть отформатированный id? Поступая таким образом, вы сохраняете ссылочную целостность, и вы также можете в любой момент изменить формат идентификатора заказа, не обновляя свою базу данных.

 SELECT id, CONCAT('A2', LPAD(id, 4, '0')) AS order_id FROM <table>; 

Пример вывода:

 +------+----------+ | id | order_id | +------+----------+ | 1 | A20001 | | 2 | A20002 ... | 999 | A20999 | | 1000 | A21000 | | 1001 | A21001 | +------+----------+ 

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

Вероятно, вы захотите использовать функцию MAX (), чтобы получить последний порядок и создать следующее значение: не забудьте сделать это в транзакции.

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

Вы не можете добавлять префиксы непосредственно в базу данных. Однако при его выборе вы можете добавить его.

 SELECT concat('A', id) as id FROM table 

Чтобы получить эффект от 20000, вы можете установить начальное значение автоматического увеличения.