python校验SQL脚本命名规则
需求背景
检查脚本文件中SQL语句能否按规范编写,规则如下:
- 创立表时,表名称需以”t_”开头且均为小写
- 添加和创立列时,列名称均为小写字母和_组成
- 创立函数,函数名称需以”f_”开头
- 创立存储过程,存储过程名称需以”p_”开头
- 创立索引,索引名称需以”idx_”开头
- 创立视图,视图名称需以”v_”开头
需求分析
- 首先要从脚本文件中提取出来表名称、列名称、函数名称、存储过程名称、索引名称、视图名称
- 这里需要用python 相应的re和os板块
- 分别创立相应的规则,相应的名称依次分别进行校验,返回信息和具体提醒
代码实现
以校验表名称为例
文本内容如下;
-- mysql创立view、trigger、function、procedure、event时都会定义一个Definer
-- 升级中!!!!!!!!!!!!!
CREATE TABLE `t_auth_group_permissions` (
create table t_business_apply_reback(
CREATE TABLE `t_exception_record` (
CREATE TABLE `t_lend_channel_insurance_company` (
?
alter table hb_product.admit_params add column originalid varchar(80);
alter table hb_product.admit_params_detail add column originalid varchar(80);
- 第一步——提取表名称
?
def get_result(rec, str):
"""
:param rec: 匹配规则
:param str: 匹配的对象
:return: 查询的结果
"""
result = re.findall(rec, str)
return result
?
def get_table_names(str):
"""
提取表名称返回数组
:param str:
:return:
"""
table_name_rc1 = re.compile(r'CREATE TABLE [\S]*?(\w+)[\S].*\(', flags=re.I)
result_table_name = get_result(table_name_rc1, str) + get_result(table_name_rc2, str)
return result_table_name
- flags=re.I 匹配时忽略大小写,由于我们的表的创立语句CREATE TABLE或者create table t_business_apply_reback
- \w 匹配字母数字下划线
- \S 匹配任意空字符
- [] 使用来表示一组字符
- () 匹配括号内的表达式
- * 匹配0个或者多个
- . 匹配任意字符除了换行符
- ? 匹配0个或者多个,非贪婪模式
运行效果如下:

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » python校验SQL脚本命名规则
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » python校验SQL脚本命名规则