Add Prefix to auto-increment in mysql db

前端 未结 4 1717
误落风尘
误落风尘 2020-12-03 16:07

I have my database with table test1. It has a primary id \"Id\" which is auto-increment. Now the id is in the format 1,2,3.. . .Is it possible to store the primary Id as PNR

4条回答
  •  执念已碎
    2020-12-03 16:56

    Hi, I made it work in this way :

    Products Table (products):

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

    Products Sequence Table (productidseq):

    id(AI, PK, NOT NULL)
    

    Before Insert Trigger in Products Table:

    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
    

    When you run below query :

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

    data inside tables will we be like this :

    products:

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

    productidseq:

    id 
    ---
     1 
    

    If any better way than this or any cons with this, please comment below. Thanks.

提交回复
热议问题