基于上述问题,我有一个名为MySQL qrc_creation的表。该表由id (自动增量)、creation_code和creation_name等列组成。例如,如果我想插入一个新的creation_name,,ID将自动1,但是,我也希望creation_code变成qrc_00000001,其中1来自ID。
因此,我可以知道执行此操作的查询是什么吗?提前谢谢你!
发布于 2022-04-04 02:07:07
你有两个选择。如果需要,在插入期间要自动操作的列,可以在定义表架构时使用MySQL生成列。但是,不能在此方法中使用“自动增量”列。
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查询中获得计算字段。
SELECT
`id`, `creation_name`, CONCAT(`name`, '_', `id`) AS `creation_code`
FROM
table_1;希望能帮上忙。
发布于 2022-04-04 02:10:57
首先,您需要显示代码,以便堆栈溢出社区响应。但我还是遇到了你的问题,下面是解决办法-
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;希望你喜欢我的回答。
https://stackoverflow.com/questions/71731224
复制相似问题