一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - 詳解python校驗SQL腳本命名規則

詳解python校驗SQL腳本命名規則

2021-06-08 00:44紅燜鯉魚 Python

這篇文章主要介紹了python校驗SQL腳本命名規則,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

需求背景

檢查腳本文件中sql語句是否按規范編寫,規則如下:

  1. 創建表時,表名稱需以"t_"開頭且均為小寫
  2. 增加和創建列時,列名稱均為小寫字母和_組成
  3. 創建函數,函數名稱需以"f_"開頭
  4. 創建存儲過程,存儲過程名稱需以"p_"開頭
  5. 創建索引,索引名稱需以"idx_"開頭
  6. 創建視圖,視圖名稱需以"v_"開頭

需求分析

首先要從腳本文件中提取出來表名稱、列名稱、函數名稱、存儲過程名稱、索引名稱、視圖名稱
這里需要使用python 相應的re和os模塊
分別創建相應的規則,相應的名稱依次分別進行校驗,返回信息和具體提示

代碼實現

以校驗表名稱為例 文本內容如下;

?
1
2
3
4
5
6
7
8
9
-- 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);

第一步——提取表名稱

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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
  1. flags=re.i 匹配時忽略大小寫,因為我們的表的創建語句create table或create table t_business_apply_reback
  2. \w 匹配字母數字下劃線
  3. \s 匹配任意空字符
  4. [] 用來表示一組字符
  5. () 匹配括號內的表達式
  6. * 匹配0個或多個
  7. . 匹配任意字符除了換行符
  8. ? 匹配0個或多個,非貪婪模式

運行效果如下:

詳解python校驗SQL腳本命名規則

第二步——表名稱匹配

?
1
2
3
4
5
6
7
8
9
10
11
12
def is_match_t(strs):
 
  """
  表名稱規則校驗:t_開頭小寫字母和下劃線
  :param strs:
  :return: 1通過,0不通過,msg返回信息
  """
  code, msg = 1, '驗證通過'
  for i in strs:
    if re.match(r'^t_[a-z_]+$', i) is none:
      return 0, '創建表名稱:' + i + '不符合命名規范,請仔細檢查!'
  return code, msg
  1. ^ 匹配字符串的開頭
  2. $ 匹配字符串的結尾
  3. [a-z_] 匹配小寫字母和下劃線

 運行效果如下:

詳解python校驗SQL腳本命名規則

以上所述是小編給大家介紹的python校驗sql腳本命名規則詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:https://my.oschina.net/hellotest/blog/2051368

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 午夜性色一区二区三区不卡视频 | 亚洲久草在线 | 四虎永久在线精品国产 | 美女视频一区二区三区在线 | 国产亚洲高清国产拍精品 | 日韩在线成人 | 亚洲免费视频一区 | 91免费精品国自产拍在线可以看 | 国产午夜精品一区二区三区不卡 | 91免费精品国自产拍在线不卡 | 美女翘臀跪床被打屁股作文 | 色综合色综合 | 亚偷熟乱区视频在线观看 | 免费国产白棉袜踩踏区域 | 91啪在线观看国产在线 | 欧美bbb人妖 | 无人区免费一二三四乱码 | 国产aⅴ一区二区三区 | 欧美精品日韩一区二区三区 | 91精品国产亚洲爽啪在线影院 | 人禽l交免费视频观看+视频 | 日韩欧美一区二区三区免费看 | 亚洲视频在线免费观看 | 精品99一区二区三区麻豆 | 精品一区heyzo在线播放 | 国产欧美日韩精品高清二区综合区 | 香蕉久久网 | 丝瓜视频黄瓜视频 | 污小说在线阅读 | 合欢视频免费 | 日本不卡视频免费的 | 99久久综合久中文字幕 | 久久国产影院 | 亚洲成av人片在线观看天堂无码 | 97热在线| 色橹| kuaibo成人播放器 | 成人在线免费看 | 毛片在线观看网站 | 色男人的天堂久久综合 | 成人免费公开视频 |