无法更新表,但选择有效

时间:2014-04-13 10:05:24

标签: mysql ubuntu

我在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

我尝试以普通用户身份执行查询,并以root身份获得相同的结果。问题是什么?我唯一做的就是在执行update语句的情况下为表创建了一个触发器。但现在甚至不可能。

感谢您的帮助!

编辑:添加了触发器

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

2 个答案:

答案 0 :(得分:1)

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

应该是

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

答案 1 :(得分:1)

您应该使用NEW代替CurrentState来引用当前行。