问题标签 [triggers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server-2005 - 可以使用sql表生成哈希吗?[sqlserver2005]
我想要一张表,生成它的哈希字符串,存储它,然后在以后的预定义时间比较它,看看它是否匹配,如果不匹配,请记下修改时间并将其与新的更改日期一起存储。
这是因为我相信如果提交了一批超过 5000 条插入语句,插入触发器会导致严重的减速。我每天移动大量数据,除了具有默认获取日期的 smalldatetime 列之外,我有某些表我无权更改其架构,因此我无法确定最后一次更改日期。
mysql - 在 MySQL 数据库中为表创建触发器(语法错误)
我无法为 MySQL 数据库定义触发器。我想在插入新行之前更改文本字段(在给定条件下)。这是我尝试过的:
但我总是收到错误“错误的语法”。我被卡住了,我做错了什么?我正在使用MySQL 5.0.51a-community
顺便说一句:像这样创建一个空触发器可以正常工作:
但这也失败了:
这是我第一次使用 stackoverflow.com,所以如果在这里发布一些东西有帮助,我会非常兴奋 :-)
sql - 如果同一行中的另一个字段被外部进程更改,我如何更新大 SQL 表中的一个小字段?
我想调用 Update ... Set ... Where ... 来更新一个字段,只要那个邪恶的 ERP 流程正在改变另一个字段的值。
我正在运行 MS SQL。
database - 触发插入同一张表
我的数据库中有许多相互关联的表。我有一个表(表一),其中插入了数据并且 id 自动递增。一旦该行有一个 ID,我想将其插入到一个表(表三)中,其中包含来自表单的另一组 ID(此数据也将进入一个表,因此它可以来自该表),同样表格作为进入第一个表的数据来自。
这两个 ID 一起构成了第三个表的主键。
我怎么能这样做,它表明多个 ID 连接到一个 ID 用于其他东西。
谢谢。
postgresql - 在 postgres 中插入期间触发更新列
我有两个表(在 postgres 中) - 广告和日志。每次插入日志表后,根据操作,它应该增加 ads 表中列的计数。
我试图编写触发器将调用的函数,但是在尝试创建函数时会引发错误。我是 postgresql 触发器和函数的新手,所以有人可以指出这有什么问题。
我得到的错误是
更新: @Tomalak:感谢功能和更新更新语句(无法抗拒双关语)。
经过大量谷歌搜索后,我了解到该函数不应该有任何参数并使用 NEW.col_name 并且应该返回一个 TRIGGER。
mysql - 使用 MySQL 触发器在插入时创建数据库
当一个值插入另一个数据库时,我可以在 MySQL 中使用触发器来创建一个新数据库吗?
events - 我需要一个类比:触发器和事件
对于另一个问题,我遇到了一个似乎偶尔出现在 SO 的误解。一些提问者似乎认为触发器之于数据库就像事件之于 OOP 一样。
有没有人有一个很好的类比来解释为什么这是一个有缺陷的比较,以及误用它的后果?
编辑:
Bill K. 正确地击中了它,但也许没有看到事件和让我印象深刻的回调函数之间的关键区别的重要性,无论如何。触发器实际上会导致代码在每次事件发生时执行;回调仅在为事件注册时发生(对于绝大多数事件而言并非如此);即便如此,在大多数情况下,回调的第一个动作是注销自身(或者至少回调包含一个限定退出,因此它只执行一次。)
如果你写一个触发器,它会在每次事件发生时都执行,因为没有办法注册或取消注册到代码段。
触发器是一种将重复逻辑同步插入执行线程(即同步性)的方法。事件是将逻辑推迟到以后的一种手段(即实现异步)。
这两种情况都有例外和缓解措施,但触发器和回调的基本模式在意图和实现上大多是相反的。通常,这种区别似乎并没有完全体现出来。(恕我直言,YMMV)。:D
sql - MSSQL:禁用一个 INSERT 的触发器
这个问题与 SQL Server 2005 非常相似:T-SQL to temporary disable a trigger
但是,我不想禁用所有触发器,甚至不想禁用一批命令,而只想禁用一个 INSERT。
我必须处理原始作者将一些应用程序逻辑放入触发器的商店系统(坏主意!)。只要您不尝试以不同于原始“管理前端”的方式插入数据,该应用程序逻辑就可以正常工作。我的工作是编写一个“从暂存系统导入”工具,所以我已经准备好所有数据。当我尝试插入它时,触发器会用生成的产品代码(不是 IDENTITY 数字 ID!)覆盖现有的产品代码。为了生成代码,它使用自动生成的插入到另一个表的 ID,因此我什至无法使用 @@IDENTITY 来查找我刚刚插入的列并使用实际的产品代码更新插入的行。
我可以采取任何方式来避免极其尴尬的代码(在产品名称中插入一些随机字符,然后尝试找到带有随机字符的行来更新它)。
那么:有没有办法为一个INSERT 禁用触发器(甚至只是一个)?
c# - 如何以编程方式触发(密封)Windows 窗体组件的事件?
更具体地说:我想要一个单元测试来触发 SaveFileDialog 的FileOk事件,以测试我自己的代码(包装 SFD 并在 ShowDialog 之前和之后做一些额外的事情)是否按预期工作。
提前感谢您对此的任何帮助。
sql - 替代行级触发器?
MS SQL Server 没有行级触发器,对吗?如果我需要从触发器中插入一行,然后根据第一次插入的结果插入另一行,游标会是最好的解决方案吗?
例如,有没有更好的方法来做到这一点: