首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于ID自动创建唯一id

基于ID自动创建唯一id
EN

Stack Overflow用户
提问于 2022-04-04 01:46:24
回答 2查看 35关注 0票数 -2

基于上述问题,我有一个名为MySQL qrc_creation的表。该表由id (自动增量)、creation_code和creation_name等列组成。例如,如果我想插入一个新的creation_name,,ID将自动1,但是,我也希望creation_code变成qrc_00000001,其中1来自ID。

因此,我可以知道执行此操作的查询是什么吗?提前谢谢你!

EN

回答 2

Stack Overflow用户

发布于 2022-04-04 02:07:07

你有两个选择。如果需要,在插入期间要自动操作的列,可以在定义表架构时使用MySQL生成列。但是,不能在此方法中使用“自动增量”列。

代码语言:javascript
运行
复制
CREATE TABLE `table_1` (
  `id` INT(10) ZEROFILL NOT NULL,
  `creation_name` VARCHAR(45) NOT NULL,
  `creation_code` VARCHAR(55) GENERATED ALWAYS AS (CONCAT(`name`, '_', `id`)),
  PRIMARY KEY (`id`));

如果不需要表中的专用列,则可以使用简单的concat函数轻松地在SQL查询中获得计算字段。

代码语言:javascript
运行
复制
SELECT 
    `id`, `creation_name`, CONCAT(`name`, '_', `id`) AS `creation_code`
FROM
    table_1;

希望能帮上忙。

票数 -1
EN

Stack Overflow用户

发布于 2022-04-04 02:10:57

首先,您需要显示代码,以便堆栈溢出社区响应。但我还是遇到了你的问题,下面是解决办法-

代码语言:javascript
运行
复制
CREATE TABLE qrc_creation
  (ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
   creation_code AS 'qrc' + RIGHT('0000000' + CAST(ID AS VARCHAR(7)), 7) PERSISTED,
   creation_name varchar(255),
  );

  Select * from qrc_creation;
 INSERT INTO qrc_creation(creation_name)
VALUES ('Monsen');
  Select * from qrc_creation;

希望你喜欢我的回答。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71731224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档