• 朱晓峰
    置顶
    2021-05-17
    你好,我是朱晓峰,下面我就来公布一下上节课思考题的答案: 上节课,我们学习了游标。下面是思考题的答案: DELIMITER // CREATE PROCEDURE demo.myproc() BEGIN DECLARE myid INT; DECLARE myq INT; DECLARE done INT DEFAULT FALSE; DECLARE cursor_test CURSOR FOR SELECT * FROM demo.test; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN cursor_test; FETCH cursor_test INTO myid,myq; REPEAT IF (myid MOD 2 = 0) THEN -- 如果是偶数,加1 UPDATE demo.test SET myquant = myquant + 1 WHERE id = myid; ELSE -- 奇数加2 UPDATE demo.test SET myquant = myquant + 2 WHERE id = myid; END IF; FETCH cursor_test INTO myid,myq; UNTIL done END REPEAT; CLOSE cursor_test; END // DELIMITER ;
    展开
    共 4 条评论
    
  • giteebravo
    2021-04-18
    视图,存储过程,存储函数,触发器 这些对象都保存在数据库中 对于应用系统来说具有很大的隐蔽性 维护和管理它们还是有很高成本的

    作者回复: 是的

    
    12
  • giteebravo
    2021-04-18
    请问老师, 一个完整的数据库设计文档应该包含哪些内容呢?

    作者回复: 一般来说应该包括需求分析、建模(ER)、逻辑设计(比如建库建表)、物理设计(比如索引)、实施、运维(容灾和备份)等,根据实际需求,可以进一步细化

    
    8
  • giteebravo
    2021-04-18
    触发器和事务的根本差别在哪呢?

    作者回复: 触发器时一种由SQL操作触发的存储程序。事务是指一系列SQL操作,要么全部执行,要么全部不执行。触发器中的SQL操作可以是事务操作,也可以不是。

    
    2
  • lesserror
    2021-04-18
    触发器实现的功能让我想到了web框架的模型事件。实现的也是模型更新、删除等前后需要执行的操作。 所以现在在代码层面处理这类多个表数据之间的数据一致性操作变得没有那么麻烦。 触发器最大的弊端就是隐蔽了,如果业务中大量使用了触发器,需要在编程语言和触发器语法之间来回横跳,加大了系统维护成本。

    作者回复: 是的

    
    2
  • jjn0703
    2022-01-28
    请教一下老师,数据库设计文档如何做的版本管理,团队协作时候,变更有的同事直接就在Navicat上操作提交了

    作者回复: 建议对流程进行管控,也可以借助一些流程控制软件,辅助以公司的规章制度、培训等手段,这个问题应该可以得到解决

    
    1
  • 流云追风
    2021-09-06
    大量数据更新或插入时,如果存在表上的触发器会影响性能的

    作者回复: 同意

    
    1
  • 小明针不戳
    2021-04-25
    老师能不能提供一个数据库设计文档给我们学习一下啊..

    作者回复: 可以在网上搜一下“数据库设计文档”,有很多信息可以参考。不过在我看来,形式并不是最重要的。重要的是要把设计的细节都记录下来并且及时更新,这样才能起到作用。但是文档维护需要耗费大量时间精力,是非常有挑战性的工作。

    共 2 条评论
    1
  • 静✨
    2022-06-05 来自北京
    适用于频繁或者大批量的数据状态同步处理。还有老师说的记log和入参检查。 印象里只有一个日本的现场用到了触发器,刚开始还惊奇,现在想了一下大概是因为他们维护了所有的文档吧😂 还包含存储过程和各种视图。

    作者回复: 是的

    
    
  • 彭彬
    2021-09-22
    Oracle的行级触发器有变异表的问题,MySQL的触发器有这个问题吗?

    作者回复: 我没有发现

    
    