Добавить префикс в auto-increment в mysql db

У меня есть моя база данных с таблицей test1. Он имеет первичный идентификатор «Id», который является автоматическим приращением. Теперь идентификатор находится в формате 1,2,3 … . Возможно сохранение первичного идентификатора как PNR1, PNR2, PNR3 … , и т. д. (с автоматическим приращением).

Нет. Добавляйте префикс в запрос или используйте представление.

Не совсем, но вы можете использовать другой столбец (но вид), который уже рассмотрен здесь: MySQL Auto Increment Custom Values

Да, вы можете сделать это, если у вас префикс INT. У вас есть id как INT в таблице

// START PREFIX $query = mysql_query("SELECT id FROM `table_name` ORDER BY id DESC LIMIT 1"); // GET THE LAST ID MAKE SURE IN TABLE YOU 9991 while ($row = mysql_fetch_object($query)) { $lastId = $row->id; } list($prefix,$Id) = explode('999',$lastId ); $Id = ($Id+1); $new_id = '999'.$Id; // END PREFIX $insertQuery = mysql_query("INSERT INTO `table_name` SET id = '".$new_id."',..."); 

Привет, я сделал это так:

Таблица продуктов (продукты):

 id_prod(varchar(11), NOT NULL, PK), name(varchar(40)) 

Таблица последовательности продуктов (productidseq):

 id(AI, PK, NOT NULL) 

Перед включением триггера в таблице продуктов:

 CREATE DEFINER=`root`@`localhost` TRIGGER `dbname`.`products_BEFORE_INSERT` BEFORE INSERT ON `products` FOR EACH ROW BEGIN insert into productidseq (id) values(NULL); set new.id_prod = concat('PROD or any prefix here',last_insert_id()); set @productId = new.id_prod; -- To use outside of trigger this variable is useful. END 

Когда вы запустите запрос ниже:

 insert into products (name) values('Bat'); 

данные внутри таблиц будут такими:

продукты:

 id | name ---|----- 1 | Bat 

productidseq:

 id --- 1 

Если какой-либо лучший способ, чем это или какие-либо проблемы с этим, прокомментируйте ниже. Благодарю.