2012-10-16 51 views
2

給定錯誤:#1436 - 線程堆棧溢出:使用131072字節堆棧的6024個字節,需要128000個字節。使用'mysqld -O thread_stack =#'指定一個更大的堆棧。錯誤:#1436 - 使用MySQL觸發器的線程堆棧溢出

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

我沒有外鍵約束之前,我的開銷雲紅在phpMyAdmin設置爲28B。

關係數據庫管理系統:MyISAM數據

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

問:爲什麼我的觸發不會刪除所有從那裏AREA_ID accounts_areas = 1

+0

你的問題是什麼? – Kermit

+0

你的RDMS是什麼? – Diego

+0

示例數據或表架構,或者我個人覺得sqlfiddle與一些真實的數據將允許SO用戶在幾秒鐘內解決問題.. – rahularyansharma

回答

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錯誤,解決辦法是增加堆棧大小。

+0

忘了複製該內容。編輯到上面,仍然沒有工作。我從後端刪除該行 –

+0

您是否收到任何錯誤? SELECT * FROM accounts_areas WHERE area_id = 1'的結果是什麼?嘗試包括添加數據庫('... TRIGGER db.After_delete ...') – Kermit

+0

刪除phpMyAdmin中的行時出現的錯誤#1436 - 線程堆棧溢出:使用131072字節堆棧時需要6024個字節,需要128000字節。使用'mysqld -O thread_stack =#'指定一個更大的堆棧。 –