You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从数值范围向数据表插入带前缀的序列值

生成带前缀的连续数值并插入数据表的实现方案

绝对有可行的方案!不同数据库的实现方式各有巧思,我整理了几个主流数据库的具体做法,你可以直接套用:

MySQL 实现方法

递归CTE(公共表表达式)是MySQL 8.0+版本里非常好用的工具,能快速生成连续数字序列,再拼接前缀即可:

WITH RECURSIVE seq AS (
    SELECT 1 AS num  -- 起始数值
    UNION ALL
    SELECT num + 1 FROM seq WHERE num < 10  -- 结束数值
)
INSERT INTO table1 (target_column)  -- 替换成你的目标列名
SELECT CONCAT('abc', num) FROM seq;

这段代码会先生成1到10的连续数字,再通过CONCAT函数把前缀abc和数字拼接起来,最后批量插入到table1的指定列中。

PostgreSQL 实现方法

PostgreSQL自带的generate_series函数简直是处理序列的神器,一行代码就能搞定:

INSERT INTO table1 (target_column)
SELECT 'abc' || generate_series(1, 10);

generate_series(1,10)直接生成1到10的整数序列,用||运算符就能轻松拼接字符串前缀,简单高效。

SQL Server 实现方法

SQL Server同样支持递归CTE,不过字符串拼接需要把数字转换成字符串类型:

WITH seq AS (
    SELECT 1 AS num
    UNION ALL
    SELECT num + 1 FROM seq WHERE num < 10
)
INSERT INTO table1 (target_column)
SELECT 'abc' + CAST(num AS VARCHAR(10)) FROM seq;

这里用CAST把数字转成字符串,再用+运算符和前缀拼接,完成插入操作。

通用手动方案(适合所有数据库)

如果你的数据库版本较低,不支持递归CTE或序列函数,范围较小时可以直接手动写值:

INSERT INTO table1 (target_column)
VALUES ('abc1'), ('abc2'), ('abc3'), ('abc4'), ('abc5'),
       ('abc6'), ('abc7'), ('abc8'), ('abc9'), ('abc10');

这种方法虽然繁琐,但胜在兼容性拉满,适合小范围的序列生成。

内容的提问来源于stack exchange,提问作者pablo brandenburg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 03:48:23