前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >99% 的人都不知道的 SQL Update 奥秘

99% 的人都不知道的 SQL Update 奥秘

作者头像
Lenis
发布2019-12-25 13:39:01
4010
发布2019-12-25 13:39:01
举报
文章被收录于专栏:有关SQL

不好意思,标题党了。但真是事实!

刚开始玩 SQL 的时候,CRUD 语法背得贼溜。自以为这是 SQL 的全部,天天热心的在网上泡论坛,回答这类问题。似乎会个 Join 都是万人敬仰的事情了。放到今天,让你笑掉大牙。那时,2003 年...

第一份工作,正式的操作 CRUD 了,在 2000 多用户的 MES 中,自信的加入了各种 SQL DML 语句。看着稳稳当当的 MES 系统,自信满满。直到有一天,返聘的退休老工程师(写 VFP + SQL)老王把我叫到办公室。

“这是你写的 Update ?”

"有什么问题吗,王师傅?”

“程序挂起 10 来分钟了...”

"不就是简单的 update 嘛,平时都运行好好的”

“把 Job Kill 掉重跑...”

一晃很多年过去了,提起这个事儿,特别有感受。

或许你以为直接写个 Update 很简单,就是更新数据那么干脆,然而数据库却不愿意这么想。最近我文章中经常会提出一些写 SQL 的注意事项,很多有心的读者会写信问我,为什么不能直接写 Update/Delete/Insert.. From. 大概你们也是这么想的吧。如果没经历过,大概过了 10 年也是这么做了,我在很多老系统代码里经常看到这种写法:

update OrderHeader

set OrderTotal = OrderItemCount * SinglePrice ;

或者

Delete OrderHeader

Where OrderDate< GetUtcDate() - 1000 ;

又或者:

Insert into OrderHeader

SELECT * FROM OrderHeaderStg ;

我先不说原理吧,大家果真认为这 SQL 能用到生产环境去?欢迎留言区讨论。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-02-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 有关SQL 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档