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

如何批量更新TXN_METHOD表中TXN_MTHD_CODE列的数字格式?

批量更新TXN_MTHD_CODE列的补零方案

针对不同数据库,单条批量更新语句的写法如下:

MySQL/MariaDB

使用字符串截取和补零函数拼接目标格式:

UPDATE TXN_METHOD
SET TXN_MTHD_CODE = CONCAT('TXN_MTHD_', LPAD(SUBSTRING(TXN_MTHD_CODE, 10), 3, '0'))
WHERE TXN_MTHD_CODE REGEXP '^TXN_MTHD_[0-9]+$';
  • 说明:SUBSTRING(TXN_MTHD_CODE, 10)截取TXN_MTHD_后的数字部分;LPAD(...,3,'0')将数字补为三位带前导零的格式;WHERE条件限定仅更新符合原格式的行,避免误操作。

Oracle

利用字符串截取和拼接语法实现:

UPDATE TXN_METHOD
SET TXN_MTHD_CODE = 'TXN_MTHD_' || LPAD(SUBSTR(TXN_MTHD_CODE, 10), 3, '0')
WHERE REGEXP_LIKE(TXN_MTHD_CODE, '^TXN_MTHD_[0-9]+$');
  • 说明:Oracle用||做字符串拼接,SUBSTR提取数字部分,REGEXP_LIKE过滤目标行。

SQL Server

提供两种兼容不同版本的写法:
方案1(兼容低版本SQL Server):

UPDATE TXN_METHOD
SET TXN_MTHD_CODE = 'TXN_MTHD_' + RIGHT('00' + SUBSTRING(TXN_MTHD_CODE, 10, LEN(TXN_MTHD_CODE)-9), 3)
WHERE TXN_MTHD_CODE LIKE 'TXN_MTHD_[0-9]%';

方案2(SQL Server 2012及以上版本,更简洁):

UPDATE TXN_METHOD
SET TXN_MTHD_CODE = 'TXN_MTHD_' + FORMAT(CAST(SUBSTRING(TXN_MTHD_CODE, 10, LEN(TXN_MTHD_CODE)-9) AS INT), '000')
WHERE TXN_MTHD_CODE LIKE 'TXN_MTHD_[0-9]%';
  • 说明:方案1通过RIGHT('00' + 数字,3)实现补零;方案2将提取的数字转为整数后,用FORMAT直接格式化为三位带前导零的字符串。

关键注意事项

  • 执行更新前,建议先运行SELECT语句验证转换结果,比如MySQL下:
SELECT TXN_MTHD_CODE, CONCAT('TXN_MTHD_', LPAD(SUBSTRING(TXN_MTHD_CODE, 10), 3, '0')) AS new_code
FROM TXN_METHOD
WHERE TXN_MTHD_CODE REGEXP '^TXN_MTHD_[0-9]+$';
  • 务必保留WHERE条件,防止更新表中不符合原格式的其他行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 01:17:12