[英]Error: #1436 - Thread stack overrun with MySQL trigger
Given error: #1436 - Thread stack overrun: 6024 bytes used of a 131072 byte stack, and 128000 bytes needed. 给定错误:#1436-线程堆栈溢出:131072字节堆栈使用了6024字节,而需要128000字节。 Use 'mysqld -O thread_stack=#' to specify a bigger stack.
使用“ mysqld -O thread_stack =#”指定更大的堆栈。
DROP TRIGGER IF EXISTS `After_delete_area_package`;
DELIMITER //
CREATE TRIGGER `After_delete_area_package` AFTER DELETE ON `area_package`
FOR EACH ROW BEGIN
DELETE FROM accounts_areas
WHERE (area_id = 1);
END
//
DELIMITER ;
simple as hell i would guess. 我猜很简单。 The only area_id in table accounts_areas is 1
表account_areas中唯一的area_id为1
Before that i tried old.package_area_id 在那之前我尝试过old.package_area_id
I do not have foreign key restraints and my overhead goes red in phpMyAdmin set to 28B. 我没有外键约束,并且在phpMyAdmin设置为28B时,我的开销变成红色。
RDMS: myISAM RDMS:myISAM
SQLFIDDLE: http://sqlfiddle.com/#!2/79a41 SQLFIDDLE: http ://sqlfiddle.com/#!2/79a41
Question: Why would my trigger not delete all the rows from accounts_areas where area_id = 1 问题:为什么我的触发器不删除accounts_areas中的所有行,而area_id = 1
Could you perhaps be missing an END
? 您可能错过了
END
吗?
DROP TRIGGER IF EXISTS After_delete_area_package;
DELIMITER $$
CREATE TRIGGER After_delete_area_package AFTER DELETE ON area_package
FOR EACH ROW
BEGIN
DELETE FROM accounts_areas
WHERE area_id = 1;
END$$
DELIMITER;
Edit 1 编辑1
Since you are reviving a thread_stack
error, the solution would would be to increase the stack size. 由于您正在恢复
thread_stack
错误,因此解决方案将是增加堆栈大小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.