2

与えられたエラー: #1436 - スレッド スタック オーバーラン: 131072 バイトのスタックのうち 6024 バイトが使用され、128000 バイトが必要です。'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 ;

私が推測するように地獄のように単純です。テーブル accounts_areas の唯一の area_id は 1
その前に、old.package_area_id を試しました

外部キーの制限がなく、28B に設定された phpMyAdmin でオーバーヘッドが赤くなります。

RDMS: myISAM

SQLFIDDLE: http://sqlfiddle.com/#!2/79a41

質問: 私のトリガーが、area_id = 1 の accounts_areas からすべての行を削除しないのはなぜですか?

4

1 に答える 1

0

あなたはおそらく欠けている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;

編集 1

エラーを復活させているのでthread_stack、解決策はスタックサイズを増やすことです。

于 2012-10-16T15:14:37.780 に答える