总结下4月份数据库遇到的坑(适合小白入门)

一见bug误终生

程序猿不易,总是会遇到各种各样奇葩的bug,这是篇总结前段时间,我踩的坑,太痛苦了,就因为一个小bug花费几个小时,耽误项目进度,很难受,以此为鉴,可以攒经验。
,高下立判,本文适合小白入门,大神勿念。

SQL

SQL里面用的update和delete最坑,数据不可逆转,一个关键字的错误使用就完了。

对于update一般是在where条件里面,先测试一条数据再放开运行,也有坑,千万要注意使用主键约束测试,这里划重点:主键唯一性,哪怕表中有相同意义的字段也要判断是否可行。先来看一段正确的语句:
update坑
然后如果测试数据一不小心换成

CU_zgdh1 = 'P2004055'

这就是大坑了,本来是想测试一条数据看看SQL语句是否跑通,结果就是表中原有的数据全部变成了

CU_id = BillNo = CU_zgdh1= ‘P2004055’

说多了都是血泪啊,salSalesOrder是数据来源母表,上万数据的还原。题外话;我是通过之前数据库的备份恢复到之前的数据,然后再结合之前恰巧的select出的所有主键和一个唯一字段锁定当天遗失的数据

在这里插入图片描述
经过一整天的数据重新输入,结果还是缺了不少
在这里插入图片描述

误删库

有句梗叫:程序猿删库跑路。
开玩笑,笑归笑哈,实际上对于实习生来说,误删库屡见不鲜,我太难了!!!
对于简单的数据库一般是使用事务回滚和启动备份,但是对于数据庞大,数据量上百万,乃至上亿的这是灾难性的。我是暂无什么好方法了,以后碰到了再说(保佑读者和笔者不要遇到!!!)

SQL语法

一般的update
update 表名 set 字段 = 值 where +条件约束\指定

一、更新

--这里的适用于MySQL
update salSalesOrder set (填对应字段,比如CU_zgh1)(字段对应数据,比如R2004307-02)
(字段对应数据,比如R2004307-03)(字段对应数据,比如R2004307-04) where BillNo in (需要更新主键)

--基本适用所有的数据库(SQL是最先的数据库,MySQL、Orcal、NoSQL等都是来源于SQL的,也就是SQL语句本身就适用所有数据库)
--update salSalesOrder set CU_zgdh1 = '', CU_daihao = '', CU_jx = '', CU_fengl = '' ,CU_fya = '',CU_fx = '', CU_fjpzhi = '', CU_gzhjing = '' 
,CU_djipp = '' ,CU_djigg = '' ,CU_mdc = '', CU_wd = '' ,CU_zyxz = '',CU_wkbt = '', CU_rkz = '',   CU_pdppai = '' , CU_ylc = '' , CU_qjk = '' ,
 CU_zx = '', CU_zcz = '',CU_ylzt = '' ,CU_zc = '',CU_jj = '',CU_zz = '',CU_bzq = '',CU_zcpp='',CU_gyx=''
,CU_bzch = '',CU_wgys='',CU_wh='', CU_tssming = '', CU_zzdjq = '',
CU_jhdd = '', CU_cdfs='',CU_zdyq='',CU_mffs='', CU_lzq = '',CU_xyq='', CU_gyx = '',CU_fym= '',CU_ckrj='', CU_rkrj = '',
CU_qt = ''	where BillNo = 'R2004307-02'

带查询功能的update
update 表名 set 字段 = (select 字段 from 任意表名 where +条件/(条件))

update T8DYFJ.dbo.CU_bomzz  set CU_bomzz.CU_BOMKeyId =
(select   BomSubMatInfo.BOMKeyId  from 
T8DYFJ.dbo.BomSubMatInfo,salSalesOrderDetail where  BomSubMatInfo.BOMKeyId=salSalesOrderDetail.CU_BOM   
and salSalesOrderDetail.MaterialId like '8%'  and  salSalesOrderDetail.BillNo = 'R2001004-03') 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值