问题标签 [mysql-error-1442]

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 投票
1 回答
7922 浏览

mysql - 更新mysql触发器中的同一行

我有一个表SCHEDULES_CLASS,其中 2 个字段是CLASS_ID(来自 CLASS 表的外键)STATUSNUMBER_OF_ENROLLED_STUDENTS. 我有其他表CLASS有 1 个字段作为 MAX_SEATS。

NUMBER_OF_ENROLLED_STUDENTS预定课程中的课程等于MAX_SEATS相应课程的可用课程时,我需要将其状态SCHEDULES_CLASS从初始状态“打开”更改为“已满”。

为此,我创建了一个触发器,如下所示:

我正在使用 phpmyadmin,当 SCHEDULED_CLASS 表上发生任何更新时,我收到以下错误:

任何想法,如何完成这项任务?即,每当注册的学生人数达到最大可用座位时,将预定班级的状态更新为“已满”。

谢谢

0 投票
2 回答
4375 浏览

mysql - 无法更新存储函数/触发器中的表“tbl”,因为它已被调用此存储函数/触发器的语句使用

我想要做的是手动向表中添加几行以进行测试。但是当我尝试添加时,它给了我以下错误

#1442 - 无法更新存储函数/触发器中的表“tbl”,因为它已被调用此存储函数/触发器的语句使用。

表结构

表结构

扳机

如何添加数据?

0 投票
2 回答
5640 浏览

mysql - 如何在 MYSQL 中删除时更新同一张表?

在我的数据库中,我有一个Employee具有递归关联的表(员工可以是其他员工的老板):

 </p>

然后插入:

现在我在表中的行之间具有以下层次关系(所有者>老板>工人):

以下是表的 Select 语句:

现在,我想施加一个约束,例如 : If any employee (BOSS) deleted then new BOSS of workers under him become immediate BOSS of deleted employee (Old BOSS)。例如,如果我删除D,则B成为Gand的 BOSS E

为此,我还编写了一个触发器,如下所示:

但是当我执行一些删除时:

在这里学习this trigger is not possible因为In MySQL triggers can't manipulate the table they are assigned to.

还有其他可能的方法吗?可以使用Nested Query吗?有人可以建议我其他方法吗?一个建议就足够了,但应该是有效的。

编辑
我得到了答案:而不是触发一个stored procedureortwo consecutive queries是可能的。 第一第二

我为这个问题写的解决方案如下,运行良好!

  • 我正在写的一个辅助信号函数MYSQL version older then 5.5

分隔符 //

  • Employee表中删除员工的存储过程。

分隔符;

0 投票
0 回答
393 浏览

mysql - 错误 1442“无法更新表”

我有这个触发器:

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

这个问题有什么解决办法吗?:(

0 投票
0 回答
53 浏览

mysql - 触发器 - 错误 #1442 无法更新 [MYSQL]

可能重复:
MySQL 触发器无法更新触发器分配到的同一表中的行。建议的解决方法?

我对这个触发器有一些问题:

错误:

1442 - 无法更新存储函数/触发器中的表 payment_out,因为它已被调用此存储函数/触发器的语句使用。

当我制作类似“new.o.how_much_to_pay”的内容时,它说它没有看到名为 new.o.how_much_to_pay 的列。有任何想法吗?

0 投票
1 回答
1480 浏览

mysql - 如何将两个字段相加并将结果自动存储在 MySQL 表的第三个字段中?

我创建了一个简单的UPDATE AFTER INSERT触发器来对两个字段求和并用求和值DECIMAL(10,2)更新第三个字段。DECIMAL(10,2)

触发代码为:

我正在使用 phpMyAdmin 运行 SQL 命令,因此我知道触发器已成功创建。此外,如果我UPDATE buybox_rec SET total_cost = (price+shipping_cost);单独运行 SQL 语句,它会按预期工作。(我也尝试过在字段名称周围使用反引号的相同代码,但如果可行,我不会写所有这些)

问题是当我插入一个新行时,触发器不起作用并抛出此错误:

该错误似乎是某种递归或循环引用问题,但我无法弄清楚问题出在哪里/是什么。

我还尝试创建一个存储过程并从触发器中调用它以尝试获得相同的结果,但我得到了同样的错误。

我检查了一堆与 MySQL UPDATE 触发器相关的其他 SO 问题并进行了一些谷歌搜索,但我在这里。

这超出了 MySQL 的范围吗?这似乎是一项常见且容易完成的任务。

有谁知道我如何自主完成这项任务?(例如,我不想听到通过 PHP 对字段求和的事情)

谢谢你的帮助

0 投票
2 回答
2882 浏览

mysql - 使用触发器更新 DATETIME,在 MySQL 中得到错误 1442

我在使用 MySQL 中的触发器时遇到问题。我有一个名为“last_modified”的列,我希望在编辑表格时使用当前日期和时间自动更新。使用触发器,这是我的 SQL 查询:

但是,当我更新表时,例如使用此查询:

MySQL Workbench 显示错误 1442:“无法更新存储函数/触发器中的表 'table_name',因为它已被调用此存储函数/触发器的语句使用”

我已经查看了具有相同错误的类似问题,但仍未修复它。帮助表示赞赏。

** 更新 **

这成功了:

好像我根本不需要重复

并且 CURRENT_DATETIME() 不存在,我不得不使用 CURRENT_TIMESTAMP()。

0 投票
1 回答
1432 浏览

mysql - 调用我的触发器时,Mysql 无法更新行

当我尝试在表中插入新行时,我的触发器失败,因为 Mysql 不支持更新触发器分配到的同一表中的行。有人对好的解决方法/替代方案有建议吗?

我的触发器:

尝试插入新行时显示的错误 Sql:

谢谢解答,

0 投票
1 回答
4411 浏览

mysql - ERROR 1442:无法更新存储函数/触发器中的表

我正在尝试更新第 3 方应用程序中的数据库。以下是受影响的两个表的架构:

我已经尝试了这两个查询,但收到相同的错误。

.

我不是 SQL 专家,也不经常使用它,但我很确定这应该可以。我猜应用程序已经设置了触发器或功能......有没有办法执行这个任务?我已经阅读了许多其他人的错误帖子,但大多数都涉及他们试图创建触发器。

0 投票
1 回答
163 浏览

mysql - MySQL触发器 - 移动内部订单列

我有下表[页]:

列“pgorder”表示特定页面的位置。

我需要触发器,它会在删除一页记录后自动移动(减少)一个位置的剩余页面顺序。

因此,当我删除例如 pgid=2 时,表应如下所示:

这个 MySQL 触发器应该是什么样子的?