第2部分 数据库SQL语言
数据库存储过程中的重要表信息的保存及相关建议
1. 存储过程中的重要表信息的保存
在非常多存储过程中,会涉及到对表数据的更新、插入或删除等,为了防止改动之后的表数据出现故障,同一时候方便追踪问题,通常会为一些重要的表建立一个相应的 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
)
添加�的字段如红色字所看到的,当中 opertime 表示操作时间, result 表示结果码 ( 成功或失败等 ) , description 表示操作描写叙述, reservechar1 为保留字段。
存储过程中,在对 tb_XXX 表进行重要操作之前,能够先将里面的数据插入 ( 转存 ) 到 tb_XXX_debuglog 表中。在须要查找相关信息或排错的时候,能够非常方便地找到,提高了程序的异常处理能力。
2. 一些建议
(1) 在编写完数据库脚本之后,一定要用 checksql 等工具对脚本进行检查,能够发现编程中的一些潜在的不足,如索引建立过少、语法有误等。
(2) 一定要依照公司的规范来对数据库脚本进行命名,不能觉得仅仅要代码写好了,怎么命名无所谓。
(3) 无论是建表脚本还是创建存储过程的脚本,代码的排版 ( 如缩进、换行、对齐、留空行等 ) 非常重要,要尽量使得自己的代码阅读起来方便。由于我们首先是为人编敲代码,其次才是计算机。
(4) 当须要在原来的 SQL 语句中增删字段或做其他改动时,建议先将整段 SQL 语句凝视掉,然后将改动之后的语句加入�到被删除语句的下方,尽量不要在原语句上直接进行改动,这样方便以后版本号的比較。
(5) 对于存储过程中的 if 、 else 、 else if 、 while 、 begin 、 end 等语句自占一行,运行语句不要紧跟其后,不论其包含的运行语句有多少条,都要加语句块标志 begin … end ,这样方便阅读。
与C/C++/Java等编程语言一样,编写SQL数据库脚本也须要遵循一定的规则。我们不仅要让脚本实现它要完毕的功能,并且要让性能尽量达到最优。“实践出真知”,仅仅有不断地练习和总结,我们的数据库编程能力才会得到提高。
(本人微博: http://weibo.com/zhouzxi?topnav=1&wvr=5 ,微信号:245924426,欢迎关注!)