我在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
?
答案 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
来引用当前行。