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

如何用正则匹配排除PRIMARY KEY的KEY行并移除(SublimeText3)

解决方法

用Sublime Text 3的查找替换功能分两步搞定,先打开替换面板(快捷键Ctrl+H),记得勾选正则表达式模式(面板左侧的.*按钮)。

第一步:删掉所有普通KEY索引行

  • 查找框输入:^\s*KEY.*,\s*$
  • 替换框留空
  • 原理:这个正则匹配所有以任意空白开头、KEY打头的完整行,包含行末的逗号和换行前的空白,自动跳过PRIMARY KEY行(因为它开头是PRIMARY KEY,不会被这个规则命中)。点「替换全部」就能把所有普通索引行清掉。

第二步:去掉PRIMARY KEY行末尾的逗号

  • 查找框输入:(PRIMARY KEY \(.*\)),\s*$
  • 替换框输入:$1
  • 原理:正则会捕获PRIMARY KEY (...)的整个内容,然后把后面的逗号和行尾空白去掉,只保留捕获到的核心内容。执行替换后,PRIMARY KEY (id),就会变成PRIMARY KEY (id)。

处理后的最终SQL

CREATE TABLE `test_table` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `ref_id` bigint(20) unsigned NOT NULL COMMENT 'ref ID',
  `code` varchar(4) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'code',
  `name` varchar(40) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'name',
  `reg_ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'reg_ts',
  `upd_ts` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT 'upd_ts',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='test table'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 07:45:36