+------------+------------------+
| AMPHUR_NAME| AMPHUR_NAME_ENG |
+------------+------------------+
| 1235855 | test12345 |
| 0 | zero | << I Want it.
+------------+------------------+
我希望在 AMPHUR_NAME = 0 时进行更新并自动更改 AMPHUR_NAME_ENG = 0。 我尝试在 phpmyadmin 中使用触发器。
我收到此错误:
#1442 - Can't update table 'amphur' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
从代码中:
CREATE TRIGGER `test` AFTER UPDATE ON `amphur`
FOR EACH ROW
IF new.AMPHUR_NAME = 0
THEN
UPDATE amphur SET amphur.AMPHUR_NAME_ENG = 'zero';
END IF
最佳答案
当表在触发器中使用时,您无法更新同一个表。
您需要更新 NEW.AMPHUR_NAME_ENG。
所以你的触发代码应该是这样的。
查询
CREATE TRIGGER `test` AFTER UPDATE ON `amphur`
FOR EACH ROW
IF NEW.AMPHUR_NAME = 0
THEN
SET NEW.AMPHUR_NAME_ENG = 'zero';
END IF
关于mysql - 当此字段值 = 0 时,我尝试使用触发器自动更改字段值并收到 MySQL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47267895/