问题标签 [database-trigger]

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 投票
2 回答
760 浏览

sql-server - 我的触发器没有递归调用

下面是我的触发器,它不是递归调用的,你能解释一下吗

0 投票
1 回答
336 浏览

oracle - 插入后触发器触发的存储过程引发的变异表错误

每当数据插入表时,我需要通过“插入后”触发器调用存储过程,但我遇到“错误 ORA-04091:表 TEST.EMP 正在变异,触发器/函数可能看不到它”。我了解此错误背后的原因,但是如何在不干扰程序的情况下通过复合触发器克服此错误?

0 投票
1 回答
366 浏览

oracle - 触发器不起作用:错误(12,10):PLS-00103:在预期以下之一时遇到符号“:”::=。(@%;

0 投票
3 回答
42 浏览

mysql - 使用 MySQL 数据库触发器

我有三个表:usersaccount并且accountinfo我正在尝试创建一个触发器,将用户的 id 添加到UserID帐户表中的列中。这是我尝试过的:

但是,我在INSERT声明之后立即收到错误消息,

为什么我收到这个错误是我有分号还是我的触发器错了?

如果这也有任何区别,我正在使用 MySQL 5.6。

0 投票
2 回答
3316 浏览

oracle - “PLS-00103:预期时遇到符号“异常”

触发代码 -

错误 -

0 投票
1 回答
78 浏览

sql - 如果该字段实质上已更改,则更改其列之一的值

我有“要求”的精髓。如果用户在这种情况下更改了“描述”字段,它应该自动更改“稳定性”字段的值(下拉列表)。也就是说,如果你不得不改变需求的描述,它就会变得不稳定。我写了一个触发器

但问题是当表中的任何更改条目时触发器被激活。只需要响应“定义”列中的更改。

我的桌子

更新表 更新发生在 Web 应用程序界面中

这是来自 SQL SERVER Profile 的查询

0 投票
2 回答
263 浏览

sql - Oracle SQL Developer 变异表和触发器

我正在为我的大学科目制作一个小项目,但在为我的小型数据库设计 Oracle SQL Developer 触发器时遇到了问题。

我有以下表格:

每次表ASSIGNED_TO中的一行被INSERTorUPDATE操作更改并且有 2 行相同时,ROOM_ID我希望触发器将一条简单的消息写入MESSAGE_LOG表中。

引起我问题的是 table 的“变异” ASSIGNED_TO。我目前的解决方案是:

这个触发器给了我“变异表”错误,到目前为止我一直无法修复它。使用:OLD.ROOM_ID而不是ROOM_ID失败,因为在操作:OLD.ROOM_ID的情况下不存在UPDATE。任何有关使这项工作的建议表示赞赏。

0 投票
2 回答
1510 浏览

sql - ORACLE SQL - 无法获取触发器以从正在更新的表中获取值的总和/计数

好的,我从课堂上得到了一些练习,我发现了一个我无法弄清楚的,即使它听起来很简单。我有这张桌子。我想创建一个触发器,在每次更新或向产品表中插入一个值后,它会使用属于该类的产品数量和价格总和来更新类表。

起初我尝试使用 FOR EACH ROW,但我不知道如何制作它以便它读取新条目的类的产品表新产品值而不“变异”,因为我试图读取产品正在更新/插入的表。即使有正确的设置方法也无法弄清楚:new。和:旧的。以此目的。

尝试检查产品表并选择计数和总和变量的游标,但这是同一个问题,整个“变异”问题。

现在我得到它没有 FOR EACH ROW,但它计算并汇总了所有类别的所有产品和价格。我不知道如何让它为每个班级单独工作。我虽然可能会根据最大类增加一个循环和一个计数器,但这似乎过于复杂。任何帮助,将不胜感激。

0 投票
1 回答
8026 浏览

database - 如何为postgresql中的所有表创建触发器?

我有一个触发器,但我需要与我的 postgres 的所有表相关联。下面有这样的命令吗?

0 投票
2 回答
1741 浏览

oracle - PL/SQL before insert trigger 禁止插入两条年龄大于 10 年的记录

BEFORE INSERT TRIGGER 必须执行以下操作:

  • 禁止将两名患者分配到年龄相差超过 10 岁的同一房间。
  • 此外,触发器还应禁止将允许年龄(小于或等于 10)的两名患者分配到同一张床位。

这意味着:

  • 如果新患者比任何已经入院的患者大 10 年左右,他们就不能在同一个房间里。
  • 如果新患者与已经入院的患者相距不到 10 年,他们可以在同一个房间,但不能在同一张床。

患者表结构:

到目前为止,我的代码是:

一些测试sql:

触发器假定将新行与表中已存在的行进行比较。但到目前为止,我的触发器只在新行之间进行比较,而不是与表中已经存在的行进行比较。

如何使其按预期工作?我一直在到处搜索,但无论如何都找不到与整个表/数据库进行比较。

非常感谢。