最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解python校驗(yàn)SQL腳本命名規(guī)則

 更新時(shí)間:2019年03月22日 11:09:18   作者:紅燜鯉魚(yú)  
這篇文章主要介紹了python校驗(yàn)SQL腳本命名規(guī)則,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

需求背景

檢查腳本文件中SQL語(yǔ)句是否按規(guī)范編寫(xiě),規(guī)則如下:

  1. 創(chuàng)建表時(shí),表名稱需以"t_"開(kāi)頭且均為小寫(xiě)
  2. 增加和創(chuàng)建列時(shí),列名稱均為小寫(xiě)字母和_組成
  3. 創(chuàng)建函數(shù),函數(shù)名稱需以"f_"開(kāi)頭
  4. 創(chuàng)建存儲(chǔ)過(guò)程,存儲(chǔ)過(guò)程名稱需以"p_"開(kāi)頭
  5. 創(chuàng)建索引,索引名稱需以"idx_"開(kāi)頭
  6. 創(chuàng)建視圖,視圖名稱需以"v_"開(kāi)頭

需求分析

首先要從腳本文件中提取出來(lái)表名稱、列名稱、函數(shù)名稱、存儲(chǔ)過(guò)程名稱、索引名稱、視圖名稱
這里需要使用python 相應(yīng)的re和os模塊
分別創(chuàng)建相應(yīng)的規(guī)則,相應(yīng)的名稱依次分別進(jìn)行校驗(yàn),返回信息和具體提示

代碼實(shí)現(xiàn)

以校驗(yàn)表名稱為例 文本內(nèi)容如下;

-- mysql創(chuàng)建view、trigger、function、procedure、event時(shí)都會(huì)定義一個(gè)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: 匹配規(guī)則
  :param str: 匹配的對(duì)象
  :return: 查詢的結(jié)果
  """
  result = re.findall(rec, str)
  return result

def get_table_names(str):
  """
  提取表名稱返回?cái)?shù)組
  :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 匹配時(shí)忽略大小寫(xiě),因?yàn)槲覀兊谋淼膭?chuàng)建語(yǔ)句CREATE TABLE或create table t_business_apply_reback
  2. \w 匹配字母數(shù)字下劃線
  3. \S 匹配任意空字符
  4. [] 用來(lái)表示一組字符
  5. () 匹配括號(hào)內(nèi)的表達(dá)式
  6. * 匹配0個(gè)或多個(gè)
  7. . 匹配任意字符除了換行符
  8. ? 匹配0個(gè)或多個(gè),非貪婪模式

運(yùn)行效果如下:

第二步——表名稱匹配

def is_match_t(strs):

  """
  表名稱規(guī)則校驗(yàn):t_開(kāi)頭小寫(xiě)字母和下劃線
  :param strs:
  :return: 1通過(guò),0不通過(guò),msg返回信息
  """
  code, msg = 1, '驗(yàn)證通過(guò)'
  for i in strs:
    if re.match(r'^t_[a-z_]+$', i) is None:
      return 0, '創(chuàng)建表名稱:' + i + '不符合命名規(guī)范,請(qǐng)仔細(xì)檢查!'
  return code, msg
  1. ^ 匹配字符串的開(kāi)頭
  2. $ 匹配字符串的結(jié)尾
  3. [a-z_] 匹配小寫(xiě)字母和下劃線

 運(yùn)行效果如下:

以上所述是小編給大家介紹的python校驗(yàn)SQL腳本命名規(guī)則詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

  • PyCharm+Pipenv虛擬環(huán)境開(kāi)發(fā)和依賴管理的教程詳解

    PyCharm+Pipenv虛擬環(huán)境開(kāi)發(fā)和依賴管理的教程詳解

    這篇文章主要介紹了PyCharm+Pipenv虛擬環(huán)境作開(kāi)發(fā)和依賴管理的教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Python 調(diào)用 C++ 傳遞numpy 數(shù)據(jù)詳情

    Python 調(diào)用 C++ 傳遞numpy 數(shù)據(jù)詳情

    這篇文章主要介紹了Python 調(diào)用 C++ 傳遞numpy 數(shù)據(jù)詳情,文章主要分為兩部分,c++代碼和python代碼,代碼分享詳細(xì),需要的小伙伴可以參考一下,希望對(duì)你有所幫助
    2022-03-03
  • 利用Python的PyPDF2庫(kù)提取pdf中的圖片

    利用Python的PyPDF2庫(kù)提取pdf中的圖片

    本篇給大家分享一下通過(guò)Python的PyPDF2庫(kù)提取pdf中的圖片方法,文中有詳細(xì)的代碼示例和流程步驟,感興趣的同學(xué)可以閱讀一下
    2023-05-05
  • pandas將DataFrame的幾列數(shù)據(jù)合并成為一列

    pandas將DataFrame的幾列數(shù)據(jù)合并成為一列

    本文主要介紹了pandas將DataFrame的幾列數(shù)據(jù)合并成為一列,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 修改Python?pip下載包的默認(rèn)路徑詳細(xì)步驟記錄

    修改Python?pip下載包的默認(rèn)路徑詳細(xì)步驟記錄

    這篇文章主要介紹了如何修改pip的默認(rèn)安裝路徑以釋放C盤(pán)空間,特別是針對(duì)機(jī)器學(xué)習(xí)相關(guān)的大型包,可以將pip的安裝位置更改為其他目錄,需要的朋友可以參考下
    2025-03-03
  • 一文帶你了解Python中的生成器和迭代器

    一文帶你了解Python中的生成器和迭代器

    生成器(Generators)和迭代器(Iterators)是 Python 中用于處理序列數(shù)據(jù)的強(qiáng)大工具,本文主要來(lái)和大家介紹一下它們的具體使用,方便大家更好的了解它們,需要的可以學(xué)習(xí)下
    2022-03-03
  • 配置 Pycharm 默認(rèn) Test runner 的圖文教程

    配置 Pycharm 默認(rèn) Test runner 的圖文教程

    今天小編就為大家分享一篇配置 Pycharm 默認(rèn) Test runner 的圖文教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • Pygame坦克大戰(zhàn)游戲開(kāi)發(fā)實(shí)戰(zhàn)詳解代碼

    Pygame坦克大戰(zhàn)游戲開(kāi)發(fā)實(shí)戰(zhàn)詳解代碼

    《坦克大戰(zhàn)》以二戰(zhàn)坦克為題材,既保留了射擊類游戲的操作性,也改進(jìn)了射擊類游戲太過(guò)于復(fù)雜難玩的高門(mén)檻特點(diǎn),集休閑與競(jìng)技于一身。經(jīng)典再度襲來(lái),流暢的畫(huà)面,瘋狂的戰(zhàn)斗,讓玩家再次進(jìn)入瘋狂坦克的世界。玩家的目標(biāo)是控制坦克躲避危險(xiǎn),消滅掉所有的敵人即可進(jìn)入下一關(guān)
    2022-02-02
  • 基于python3 OpenCV3實(shí)現(xiàn)靜態(tài)圖片人臉識(shí)別

    基于python3 OpenCV3實(shí)現(xiàn)靜態(tài)圖片人臉識(shí)別

    這篇文章主要為大家詳細(xì)介紹了基于Python3 OpenCV3實(shí)現(xiàn)靜態(tài)圖片人臉識(shí)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • 最新評(píng)論

    健康| 焉耆| 洪江市| 沛县| 贞丰县| 蒙阴县| 徐州市| 三台县| 台北县| 武邑县| 高邮市| 廉江市| 保山市| 浪卡子县| 德化县| 遂川县| 阳朔县| 麦盖提县| 临湘市| 柘城县| 安陆市| 上高县| 舒城县| 土默特右旗| 金昌市| 香格里拉县| 牟定县| 思南县| 上饶市| 丹东市| 米林县| 长沙市| 辽宁省| 忻州市| 高台县| 开平市| 葫芦岛市| 刚察县| 济源市| 岳普湖县| 清水县|