问题标签 [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 回答
2615 浏览

sql - 更新子表后数据库触发器更新父表上的行

第一次创建数据库触发器。我有一个子表,当其成本列更新时,我需要其父表也更新其成本列以反映更改。

到目前为止,这是我很抱歉的尝试。这显然行不通。我在弄清楚如何将总成本提取为变量并将其存储在父表中时遇到问题。

我目前的方法目前假设一个静态 id 值。我不完全确定如何动态确定更新行的 id 值。

此当前脚本返回错误

消息 207,级别 16,状态 1,过程 ParentCost_Update,第 9 行无效的列名称“TotalCost”。

0 投票
2 回答
58 浏览

oracle - 使用函数 Oracle 触发

我需要触发一个触发器,在获得批准的学生的情况下插入“A”,在未获得批准的学生的情况下插入“R”。我需要使用返回“A”或“R”的函数。这是我的功能:

这是我的触发器:

当我尝试执行时,总是会出错。我不知道我能做什么!

0 投票
2 回答
61 浏览

sql - 是否可以在检查约束中引用整行?

我想使用CHECK约束而不是触发器为整行调用我自己的验证函数 - 可能吗?

0 投票
1 回答
56 浏览

oracle - 未创建触发器

我在生成 Oracle 基础的 SQL 文件中有三个触发器。当我启动文件时,我没有“触发器已创建”的消息,并且似乎在触发器创建时执行被锁定(我之前对所有内容都有创建确认)。

你能帮助我吗 ?以下是触发器:

0 投票
1 回答
69 浏览

oracle - 使用 Oracle 创建触发器的问题

我的问题是:

一个触发器,它自动将销售代理名称、汽车型号和制造商名称存储在一个名为“ExcellentSale”的单独表中,每次销售交易的商定价格超过汽车要价的 20% 时。(注意:您需要在实现此触发器之前创建“ExcellentSale”表。要创建主键,请使用从 1 开始并以 1 为增量的序列)。

我正在使用这些表

这是我的尝试

触发器编译,当我尝试测试它时,我使用将插入到 SalesTransaction 中的这些值,这应该会触发触发器但显示为错误。

显示的错误是这样的

0 投票
1 回答
1120 浏览

oracle - 如何在同一个表中使用 AFTER INSERT 触发器更新表?

我在表 A 上有 2 个触发器,一个是 BEFORE INSERT ,一个是 AFTER INSERT :

为什么 after insert 中的 update 命令不起作用(状态未设置为 DONE)?我错过了什么吗?

0 投票
2 回答
5482 浏览

sql - Oracle SQL - PLS-00049 - 绑定变量错误

我有这样定义的表:

我想创建一个触发器来阻止插入未来的日期,我的代码如下所示:

我不断收到错误 Error(5,7): PLS-00049: chybná vázaná proměnná 'NEW.DATUM_CAS' (英语中的错误绑定变量)。我究竟做错了什么?

0 投票
0 回答
40 浏览

sql - 我可以在视图上创建触发器吗?

我需要用上面的字段创建这个表的视图。像具有相同字段的 APPLICANTS_v

我有下面给出的另一个表(空白表)字段

当有人更新“APPLICANTS”中的字段 APPLICANT_STATUS_ID 时,我只想在 STATUS_CHANGE 中插入那些记录

在更新此表值时,该记录
在表 STATUS_CHANGE 中以当前时间插入新或旧值的时间,例如:-

我可以在 APPLICANTS_v 视图上创建触发器以在更新 APPLICANTS 表中的值时插入 STATUS_CHANGE 记录吗?

0 投票
2 回答
132 浏览

sql-server - 删除游标 t-sql

我在 mssql 中有一个触发器,我想将插入表中的每一列与已删除表进行比较,以检查值是否已更改...如果值已更改,我想将列名插入临时表。

到目前为止我的代码:

有没有更简单的方法来实现这一点?

0 投票
1 回答
2101 浏览

mysql - 在同一张表上使用触发器插入新行

我有一张桌子JOB。它具有以下列:cycle_id, job_id, status

每个周期执行 7 个作业。所以cycle_idjob_id形成复合主键。

status 列可以有以下值:WAITING_TO_START, RUNNING. COMPLETED.

每个作业都是一个 cron 作业。每个工作都是不同人的责任,所以为了同步每个人,我正在使用数据库表 JOB。每个作业都侦听 JOB 表并观察它是否存在其 job_id 和状态为“WAITING_TO_START”的行。因此,每当作业状态更改为 COMPLETED 时,我想要什么,下一个作业行的创建与cycle_id更新的作业相同,job_id 作为更新的作业的 id + 1,状态为“WAITING_TO_START”。所以我为此创建了一个触发器:

但是当我对 JOB 表执行更新时,出现以下错误:

错误 1442 (HY000):无法更新存储函数/触发器中的表“作业”,因为它已被调用此存储函数/触发器的语句使用。

那么有没有办法实现同步。我不希望每个工作都用下一个工作的 ID 创建一行。我希望它自动处理。这个触发器可以用不同的方式编写还是我应该使用其他机制。