2014-04-13 50 views
1

我在MySQL面臨一個奇怪的問題,我嘗試更新存在的表中的值,但得到一個錯誤,表即使它存在表不存在。 SELECT語句工作正常:無法更新表,但選擇作品

mysql> SELECT * FROM CurrentState; 
+----+------------+--------+--------+ 
| ID | last_price | buyer | seller | 
+----+------------+--------+--------+ 
| 1 |  5.10 | 5.09 | 5.12 | 
| 2 |  132.00 | 130.30 | 132.40 | 
+----+------------+--------+--------+ 
2 rows in set (0.00 sec) 

mysql> UPDATE CurrentState SET buyer = buyer; 
ERROR 1109 (42S02): Unknown table 'CurrentState' in field list 

我試着做查詢作爲普通用戶和作爲根,我得到了相同的結果。問題是什麼?我所做的唯一的事情是,我已經創建了表的觸發器,以防執行更新語句。但現在這是不可能的。

感謝您的幫助!

編輯:添加觸發器

CREATE TRIGGER push_changes AFTER UPDATE ON CurrentState FOR EACH ROW CALL winners_change(CurrentState.buyer,CurrentState.seller,CurrentState.last_price); 

我寫這篇文章我想這個問題是(CurrentState.buyer,CurrentState.seller,CurrentState.last_price);部分,應CurrentState被刪除?

+1

我們需要看到你添加的觸發器,這可能是問題所在。 – redmoon7777

+0

@ redmoon7777:感謝您的回覆,已添加觸發器。 – Araw

+0

是的,它應該是新的 – redmoon7777

回答

1

您應該使用NEW,而不是CurrentState引用當前行。

1
CALL winners_change(CurrentState.buyer,CurrentState.seller,CurrentState.last_price); 

應該

CALL winners_change(NEW.buyer,NEW.seller,NEW.last_price);