日常我们软件系统前台数据有问题需要动用后台数据库的话,为了数据安全我们执行sql脚本时都需要先进行备份,备份完成后执行操作,如果发现执行后问题还解决不了的话,执行脚本回滚撤回执行脚本,不然对数据导致不必要的不可恢复操作,这样后台数据操作为了数据安全,而且避免误删除和误执行造成数据风险。今天我们来看下如何写后台脚本备份、执行、回滚语句的,如下经验:常见的数据库后台脚本备份执行回滚语句;
工具/原料
数据库备份、执行、回滚sql的编写申请;
向数据库管理员进行申请;
方法/步骤
1、往往我们要修改数据库后台表是都需要咸犴孜稍先把原来执行前的数据进行备份操作,如下:例如修改总账辅助核算后台表,备份-修改供应商辅助核算;createta芟鲠阻缒blencdata.gl_freevalue_bak_20181214asselect*fromncdata.gl_freevaluewherefreevalueidin('1001H21000000349PM2I','1001H210000003D1N71U');--辅助核算commit;createtablencdata.gl_docfree1_bak_20181214asselect*fromncdata.gl_docfree1whereassidin('1001H21000000349PM2I','1001H210000003D1N71U');--辅助项目commit;
2、对脚本1备份进行说明,创建执行前的备份表createtable命名为:表名称_bak_20181214as后是查询原数据的脚本,要使用唯一主键进行过滤。
3、执行-修改供应商辅助核算;updatencdata.gl_freevalue衡痕贤伎setTYPEVALUE1='0001Z010扉钛笆哇0000000005CV0001H210000003TCM5M1'wherefreevalueidin('1001H21000000349PM2I','1001H210000003D1N71U');--辅助核算commit;updatencdata.gl_docfree1setF4='0001H210000003TCM5M1'whereassidin('1001H21000000349PM2I','1001H210000003D1N71U');--辅助项目commit;
4、对脚本2执行进行说明,update或者delete编写对应的查询语句,注意where要和备份where一致(wherefreevalueidin('1001H21000000349PM2I','1001H210000003D1N71U')),不然备份之外的怕误执行了。
5、回滚-修改供应商辅助核算;up蟠校盯昂datencdata.gl_freevaluesetTYPEVALUE吭稿荔徊1=(selectTYPEVALUE1fromncdata.gl_docfree1_bak_20181214wherefreevalueidin('1001H21000000349PM2I','1001H210000003D1N71U'))wherefreevalueidin('1001H21000000349PM2I','1001H210000003D1N71U');--辅助核算commit;updatencdata.gl_docfree1setF4=(selectF4fromncdata.gl_docfree1_bak_20181214whereassidin('1001H21000000349PM2I','1001H210000003D1N71U'))whereassidin('1001H21000000349PM2I','1001H210000003D1N71U');--辅助项目commit;
6、对应执行脚本2数据还没处理成功或问题为解决,要及时对脚本2进行回滚编写脚本3并进行说明,把update的从备份表找到并再次更新,这里set更新字段=(查询到备份表里的值where条件)后再where条件;setF4=(selectF4fromncdata.gl_docfree1_bak_20181214whereassidin('1001H21000000349PM2I','1001H210000003D1N71U'))whereassidin('1001H21000000349PM2I','1001H210000003D1N71U')