gpt4 book ai didi

mysql - 如何确定字段/列是否受 UPDATE 语句影响

转载 作者:可可西里 更新时间:2023-11-01 07:57:25 25 4
gpt4 key购买 nike

大家好,感谢您的回答和评论。

我有一个包含多个字段的表,其中有 versionlast_modifiedmodified_by

我正在编写一个触发器:

  • 每次/任何更新后将version增加1,
  • last_modified设置为当前时间戳,
  • modified_by中设置最近修改的用户id,
  • 防止程序员通过发出信号(在这种情况下)忽略/忘记在 UPDATE 语句中设置 modified_by = userid

我怎样才能做到这一点?

我尝试检查 isnull(NEW.modified_by),但后来意识到 NEW.modified_byOLD.modified_by 的值相同如果没有受到影响。此外,检查 NEW.modified_by 是否等于 OLD.modified_by 也不太可行,因为它可能是用户修改了他之前修改过的记录。

有没有办法确定哪些字段受 UPDATE 语句影响?或者如果特定字段 (modified_by) 受到影响?

最佳答案

我找不到任何可以让您检查传入信息以查看哪些字段受到影响的东西。虽然我知道您正试图在触发器级别阻止此问题,但要求所有表写入都经过存储过程可能是谨慎的做法。这样您就可以要求用户字段。

如果这不可能,我认为您可能需要采取一些技巧。例如,您可能需要将 user_id 写入两个字段(为此创建一个额外的空白列)。然后,将虚拟列中的 user_id 与您要更新的列进行比较。确定是否需要修改 user_id 后,再次清空虚拟列。它不漂亮,但可以完成工作。

关于mysql - 如何确定字段/列是否受 UPDATE 语句影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5907110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com