2012-05-10 44 views
0

我有一張表,我不能複製一行,因爲其中一個字段有一個名爲items.calcPricestored procedure,它不再存在。如何刪除表格上的存儲過程?

這裏的MySQL命令:

INSERT INTO items (folder_id) 
VALUES (56) 

錯誤消息說,"Couldn't write row. FUNCTION items.calcPrice does not exist."

如何識別和刪除stored procedure在我的桌子嗎?我有2個有「價格」價值的領域,所以我不確定這個procedure運行在哪個領域。

+0

,請複製粘貼您要執行這引起了該錯誤的語句。 – eggyal

+0

我正在使用mysqlpro,所以我只需點擊一個按鈕來創建一個新的行,但給我第二個使用SQL命令重現... –

+0

該表上插入觸發器之前有任何嗎? 'SHOW TRIGGERS WHERE Event ='INSERT'AND Table ='mytable''? – eggyal

回答

1

按照我們在聊天中的討論,看起來您在此表上定義了一個BEFORE INSERT觸發器,稱爲Items_Trigger,該觸發器嘗試調用您的問題涉及的函數。

刪除觸發器:

DROP TRIGGER Items_Trigger; 
+1

不要刪除觸發器,直到你知道他們爲什麼在那裏。 – HLGEM

+1

@HLGEM:同意 - 在這種情況下,我們在我們的聊天中報道:「*我可以刪除所有這些東西,我不再需要它了*」,並在進一步提示時,「*這是我們不需要的舊邏輯*了」。 – eggyal

+1

我只是希望未來的讀者能夠意識到,如果您不知道不再需要觸發器,那麼這是一種危險的做法。 – HLGEM