第2部分 數(shù)據(jù)庫SQL語言
數(shù)據(jù)庫存儲過程中的重要表信息的保存及相關(guān)建議
?
1. 存儲過程中的重要表信息的保存
????????在非常多存儲過程中,會涉及到對表數(shù)據(jù)的更新、插入或刪除等,為了防止改動之后的表數(shù)據(jù)出現(xiàn)故障,同一時候方便追蹤問題,通常會為一些重要的表建立一個相應(yīng)的 debug 表。這個 debug 表中的字段要包含原表的全部字段,同一時候要添加?操作時間、操作碼和操作描寫敘述等字段信息。
??????? 比如,在某項目中,包含了例如以下一個重要的表 tb_XXX :
create table tb_XXX
(
???? AAA??????????????? varchar(30)??? not null,?? ?-- AAA
???? BBB??????????????? varchar(30)??? not null,?? -- BBB
???? CCC??????????????? int???????????????????? not null,?? -- CCC
???? . . . . . .
)
?
??????? 我們的 debug 表能夠命名為 tb_XXX_debuglog ,其定義例如以下:
create table tb_XXX_debuglog
(
???? AAA??????????????? varchar(30)??? not null,?? -- AAA
???? BBB??????????????? varchar(30)??? not null,?? -- BBB
???? CCC??????????????? int?????????? not null,?? -- CCC
???? . . . . . .
??? opertime?????????? varchar(19)?????? ?not null,? ??-- operating time
??? result????????????? varchar(20)???? not null,? ?-- result code
??? description?????varchar(100)??? not null,? -- operating description
??? reservechar1??varchar(30)????????????null?? -- reserved
)
?
???????? 添加?的字段如紅色字所看到的,當(dāng)中 opertime 表示操作時間, result 表示結(jié)果碼 ( 成功或失敗等 ) , description 表示操作描寫敘述, reservechar1 為保留字段。
??????? 存儲過程中,在對 tb_XXX 表進(jìn)行重要操作之前,能夠先將里面的數(shù)據(jù)插入 ( 轉(zhuǎn)存 ) 到 tb_XXX_debuglog 表中。在須要查找相關(guān)信息或排錯的時候,能夠非常方便地找到,提高了程序的異常處理能力。
?
2. 一些建議
??????? (1) 在編寫完數(shù)據(jù)庫腳本之后,一定要用 checksql 等工具對腳本進(jìn)行檢查,能夠發(fā)現(xiàn)編程中的一些潛在的不足,如索引建立過少、語法有誤等。
??????? (2) 一定要依照公司的規(guī)范來對數(shù)據(jù)庫腳本進(jìn)行命名,不能覺得僅僅要代碼寫好了,怎么命名無所謂。
??????? (3) 無論是建表腳本還是創(chuàng)建存儲過程的腳本,代碼的排版 ( 如縮進(jìn)、換行、對齊、留空行等 ) 非常重要,要盡量使得自己的代碼閱讀起來方便。由于我們首先是為人編敲代碼,其次才是計算機(jī)。
??????? (4) 當(dāng)須要在原來的 SQL 語句中增刪字段或做其他改動時,建議先將整段 SQL 語句凝視掉,然后將改動之后的語句加入?到被刪除語句的下方,盡量不要在原語句上直接進(jìn)行改動,這樣方便以后版本號的比較。
??????? (5) 對于存儲過程中的 if 、 else 、 else if 、 while 、 begin 、 end 等語句自占一行,運(yùn)行語句不要緊跟其后,不論其包含的運(yùn)行語句有多少條,都要加語句塊標(biāo)志 begin … end ,這樣方便閱讀。
?
??????? 與C/C++/Java等編程語言一樣,編寫SQL數(shù)據(jù)庫腳本也須要遵循一定的規(guī)則。我們不僅要讓腳本實現(xiàn)它要完畢的功能,并且要讓性能盡量達(dá)到最優(yōu)。“實踐出真知”,僅僅有不斷地練習(xí)和總結(jié),我們的數(shù)據(jù)庫編程能力才會得到提高。
?
?
(本人微博: http://weibo.com/zhouzxi?topnav=1&wvr=5 ,微信號:245924426,歡迎關(guān)注!)
讓你提前認(rèn)識軟件開發(fā)(28):數(shù)據(jù)庫存儲過程中的重要表信息的保存及相關(guān)建議
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
