记一次使用Notepad++正则表达式批量替换SQL语句

目录

一、需求

存在如下SQL建表脚本:

sql 复制代码
CREATE TABLE "BUSINESS_GOODS"
(
"ID" VARCHAR(32) NOT NULL,
"GOODS_CODE" VARCHAR(50),
"GOODS_NAME" VARCHAR(100),
...
NOT CLUSTER PRIMARY KEY("ID")) STORAGE(ON "MAIN", CLUSTERBTR) ;

COMMENT ON COLUMN "BUSINESS_GOODS"."CREATE_TIME" IS '创建时间';
COMMENT ON COLUMN "BUSINESS_GOODS"."CREATE_USER" IS '创建人';

CREATE TABLE "OAUTH2_AUTHORIZATION"
(...) ;

CREATE TABLE "OAUTH2_AUTHORIZATION_CONSENT"
(...) ;

想把其中涉及的多个CREATE TABLE语句前添加相应的DROP TABLE语句如下,如对应CREATE TABLE "BUSINESS_GOODS",希望该sql语句前添加如下删除表语句:

sql 复制代码
DROP TABLE IF EXISTS "BUSINESS_GOODS" restrict;
CREATE TABLE "BUSINESS_GOODS"
...

二、解决方案

使用Notepad++打开sql脚本,按CTRL+F弹出查找对话框,点击上方的替换标签,输入如下替换内容后,选择查找模式为正则表达式,之后点击全部替换即可:

替换后效果:

替换目标: CREATE TABLE "(\w*)"
替换为: DROP TABLE IF EXISTS "1" restrict;\\r\\nCREATE TABLE "1"

三、正则解析

CREATE TABLE "(\w*)"中的(\w*)即为捕获组(使用括号包围的正则)的概念,而捕获组的内容可以通过序号进行提取,如通过$1获取第一个捕获组的内容,如此DROP TABLE IF EXISTS "$1" restrict;\r\nCREATE TABLE "$1"中的$1即被替换为相应的table名称,其中的\r\n表示换行。


参考:
正则表达式 - 捕获组Group
在notepad++软件上用正则表达式替换内容

相关推荐
阿里嘎多哈基米13 小时前
SQL 层面行转列
数据库·sql·状态模式·mapper·行转列
雨落Liy15 小时前
SQL 函数从入门到精通:原理、类型、窗口函数与实战指南
数据库·sql
三毛200417 小时前
玳瑁的嵌入式日记D33-0908(SQL数据库)
jvm·数据库·sql
TDengine (老段)18 小时前
TDengine 选择函数 Last() 用户手册
大数据·数据库·sql·物联网·时序数据库·tdengine·涛思数据
心 一20 小时前
Web安全基石:深入理解与防御SQL注入漏洞
sql·安全·web安全
林熙蕾LXL21 小时前
SQL Server——基本操作
数据库·sql
FLS1681 天前
Kali搭建sqli-labs靶场
linux·sql·安全·网络安全
007php0071 天前
某大厂MySQL面试之SQL注入触点发现与SQLMap测试
数据库·python·sql·mysql·面试·职场和发展·golang
Ultipa1 天前
查询语言的进化:SQL之后,为什么是GQL?数据世界正在改变
数据库·sql·图数据库·gql
LB21121 天前
SQL隐式链接显式连接
大数据·数据库·sql