记一次使用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++软件上用正则表达式替换内容

相关推荐
恰薯条的屑海鸥8 分钟前
SQL注入篇-sqlmap的配置和使用
数据库·sql·安全·web安全·渗透测试·网络安全学习
野盒子38 分钟前
前端小程序面试题
前端·小程序·notepad++
琪阿不会编程2 小时前
Mysql8 忘记密码重置,以及问题解决
android·数据库·sql·mysql
星辰离彬11 小时前
Java 与 MySQL 性能优化:MySQL 慢 SQL 诊断与分析方法详解
java·spring boot·后端·sql·mysql·性能优化
面朝大海,春不暖,花不开13 小时前
使用 Python 正则表达式实现文本替换与电话号码规范化
python·mysql·正则表达式
远方160919 小时前
21-Oracle 23 ai-Automatic SQL Plan Management(SPM)
数据库·sql·oracle
前端小白从0开始20 小时前
关于前端常用的部分公共方法(二)
前端·vue.js·正则表达式·typescript·html5·公共方法
cookqq20 小时前
mongodb源码分析session执行handleRequest命令find过程
数据库·sql·mongodb·nosql
岁忧21 小时前
LeetCode 高频 SQL 50 题(基础版)之 【高级字符串函数 / 正则表达式 / 子句】· 下
sql·leetcode·正则表达式
写bug写bug21 小时前
SQL窗口函数原理和使用
后端·sql·mysql