问题标签 [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.

0 投票
4 回答
6665 浏览

sql - 您如何确定表的多个触发器的优先级?

我在一张桌子上有几个触发器,我想保持分开并希望对它们进行优先级排序。

我可以只有一个触发器并在那里执行逻辑,但我想知道是否有一种更简单/合乎逻辑的方法来实现它以预定义的顺序?

0 投票
4 回答
5593 浏览

sql - T-SQL 触发器触发“列名或提供的值的数量与表定义不匹配”错误

这是我无法解决的问题,我到处寻找。也许这里有人会知道!

我有一个名为 dandb_raw 的表,其中特别包含三列:dunsId (PK)、name 和 searchName。我还有一个作用于此表的触发器:

触发器导致插入失败:

出现此错误:

对此最奇怪的是,触发器中的每个单独的语句都是独立工作的。如果您尝试将插入的临时表移动到其中一个中,就好像 insert 是一个一次性的表,它会感染临时表。

那么是什么导致触发器失败呢?怎么能阻止?

0 投票
1 回答
4724 浏览

mysql - MySQL触发器+多个数据库的复制

我在 MySQL 5.0.45 上运行了几个数据库,并试图让我的旧数据库与修改后的模式同步,这样我就可以同时运行这两个数据库。我通过向新数据库添加触发器来做到这一点,但我遇到了复制问题。我的设置如下。

服务器“主”

  • 数据库“legacydb”,复制到服务器“slave”。
  • 数据库“newdb”,具有更新“legacydb”且没有复制的触发器。

服务器“奴隶”

  • 数据库“legacydb”

我对“newdb”的更新运行良好,并触发了我的触发器。他们在“主”服务器上更新“legacydb”。但是,这些更改不会复制到从属服务器。MySQL 文档说,为简单起见,复制在"SELECT DATABASE();"决定复制哪些查询时会查看当前数据库上下文(例如),而不是查看查询的产品。我的触发器是从数据库“newdb”的上下文中运行的,因此复制会忽略更新。

我尝试将更新语句移动到“legacydb”中的存储过程。当我连接到“master”并手动运行时,这工作正常(即数据复制到从属)"USE newdb; CALL legacydb.do_update('Foobar', 1, 2, 3, 4);"。但是,当从触发器调用此过程时,它不会复制。

到目前为止,我对如何解决此问题的想法是以下之一。

  • 强制触发器设置一个新的当前数据库。这将是最简单的,但我认为这是不可能的。这是我希望通过存储过程实现的。

  • 复制两个数据库,并在主从中都有触发器。这是可能的,但设置起来很痛苦。

  • 无论当前数据库上下文如何,强制复制获取对“legacydb”的所有更改。

  • 如果复制运行的级别太高,它甚至不会看到我的触发器运行的任何更新,在这种情况下,再多的黑客攻击也无法实现我想要的。

任何有关如何实现这一目标的帮助将不胜感激。

0 投票
2 回答
787 浏览

sql - SQL Server 2005 多数据库部署/升级软件建议

我们有一个产品使用多个带有触发器的 SQL Server 2005 数据库。我们正在寻找一种可持续的解决方案,用于在客户服务器上部署和升级数据库模式。

目前,我们正在使用 Red Gate 的 SQL Packager,这对于这项特定工作来说似乎是错误的工具。不仅 SQL Packager 似乎面向单个数据库,而且我们拥有的特定(旧)版本在 SQL Server 2005 上存在一些问题。(我们的 SQL Packager 版本在 SQL Server 2000 上运行良好,尽管我们必须做一个很多变通方法使它能够处理带有触发器的多个数据库。)

有人可以推荐一个可以创建 EXE 或 .NET 项目的产品来执行以下操作吗?

然后,当客户需要更新他们的数据库模式时,产品可以查看原始数据库集和我们服务器上更新的数据库集之间的变化。然后产品可以创建一个 EXE 或 .NET 项目,该项目可以在客户的服务器上...

基本上,我们正在寻找一种类似于 SQL Packager 的产品,但它可以轻松处理多个数据库。如果不存在这样的产品,我们将不得不自己制造。

提前感谢您的建议!

0 投票
9 回答
19942 浏览

sql - SQL - 你如何比较 CLOB

在 DB2 触发器中,我需要比较 CLOB 字段的值。就像是:

但是“!=”不适用于比较 CLOB。

有什么比较方法?

编辑添加:

如果在更新期间更改了 Clob 字段,我的触发器需要执行一些操作。这就是我需要比较触发器代码中的 2 个 CLOB 的原因。 我正在寻找一些关于如何做到这一点的详细信息

0 投票
2 回答
26839 浏览

oracle - 如何检查触发器是否无效?

我正在研究具有由一些不起眼的工具自动生成的移动表的数据库。顺便说一句,我们必须通过一些触发器来跟踪表中的信息变化。当然,表结构中的某些更改会破坏某些触发器,例如删除列或更改其类型。

所以,问题是:有没有办法查询 Oracle 元数据以检查某些触发器是否损坏,以便向支持团队发送报告?

user_triggers 给出所有触发器并告诉它们是否启用,但不指示它们是否仍然有效。

0 投票
3 回答
1119 浏览

sql-server - 从 SQL Server 触发器生成进程的最佳方法

我将如何使用 SQL Server 05/08 触发器生成一个单独的进程?理想情况下,我想生成进程并让 SQL Server 不等待进程完成执行。我需要从触发进程的插入中传递几个参数,但可执行文件会处理其余的。

0 投票
2 回答
358 浏览

sql - 数据库重复值问题(基于先前值过滤)

本周早些时候,我问了一个关于在运行时按顺序过滤掉重复值的问题。有一些很好的答案,但我要处理的数据量很慢而且不可行。

目前在我们的数据库中,事件值未被过滤。导致重复的数据值(具有不同的时间戳)。我们需要在运行时处理这些数据,并且在数据库级别处理这些数据的时间成本很高(并且不能将其拉入代码中,因为它在存储过程中被大量使用)导致查询时间长。我们需要一个我们可以查询的数据结构,它过滤掉了这个数据存储,以便在运行时不需要额外的过滤。

目前在我们的数据库中

  • 'F07331E4-26EC-41B6-BEC5-002AACA58337', '1', '2008-05-08 04:03:47.000'
  • 'F07331E4-26EC-41B6-BEC5-002AACA58337', '0', '2008-05-08 10:02:08.000'
  • 'F07331E4-26EC-41B6-BEC5-002AACA58337', '0', '2008-05-09 10:03:24.000' (需要删除) **
  • 'F07331E4-26EC-41B6-BEC5-002AACA58337', '1', '2008-05-10 04:05:05.000'

我们需要的

  • 'F07331E4-26EC-41B6-BEC5-002AACA58337', '1', '2008-05-08 04:03:47.000'
  • 'F07331E4-26EC-41B6-BEC5-002AACA58337', '0', '2008-05-08 10:02:08.000'
  • 'F07331E4-26EC-41B6-BEC5-002AACA58337', '1', '2008-05-10 04:51:05.000'

这似乎微不足道,但我们的问题是我们从无线设备获取这些数据,导致数据包乱序,并且我们的网关是多线程的,因此我们无法保证我们获得的值是有序的。可能会出现 4 秒前的“1”和 2 秒前的“0”,但我们已经处理了“1”,因为它是第一个进入的。我们一直在思考如何实现这一点。我们无法将数据与数据库中的最新值进行比较,因为最新的值实际上可能还没有进来,所以要丢弃这些数据,我们会被搞砸,我们的序列可能会完全关闭。所以目前我们存储每个传入的值,并且数据库根据时间自行洗牌。但是单元可以发送 1,1,1,0 并且它是有效的,因为事件仍然处于活动状态,

有任何想法吗?

询问您是否需要任何进一步的信息。

[编辑] PK 不起作用 - 问题是我们的单位实际上发送了不同的时间戳。所以PK不起作用,因为1,1,1是相同的..但是有不同的时间戳。它的类似事件在时间 1 发生,事件在时间 2 仍然发生,它把我们两个都发回......相同的值不同的时间。

0 投票
6 回答
2658 浏览

javascript - Javascript:函数退出时触发操作

有没有办法监听 javascript 函数退出?功能完成时可以设置的触发器?

我试图在 AJAX 对象从数据库中检索数据时使用用户界面混淆技术 (BlockUI),但该函数不一定最后执行,即使您将它放在函数调用的末尾。

例子:

在触发 unBlockUI 之前,doStuff 有没有办法监听 ajaxCall 完成?实际上,它线性地处理函数,按顺序调用每个对象,然后生成一个单独的线程来完成每个对象。因此,尽管我的 AJAX 调用可能需要 10-15 秒才能完成,但由于函数的线性执行,我只会阻止用户一瞬间。

解决这个问题的方法不太优雅......仅当 AJAX 函数设置的返回值设置为 true 或类似性质时,才结束循环。但这似乎不必要地复杂和低效。

0 投票
2 回答
2520 浏览

wpf - 使用 WPF,更新自定义按钮控件背景的最佳方法是什么?

在 WPF 中,我们正在创建自定义控件,这些控件继承自具有完全从头开始绘制的 xaml 图形的按钮。我们在整个按钮 xaml 周围有一个边框,我们希望将其用作在触发器中 MouseOver=True 时更新背景的位置。我们需要知道的是,当鼠标悬停在这个按钮上时,我们如何用渐变来更新这个按钮的边框背景?