【发布时间】:2016-11-30 05:55:01
【问题描述】:
我在 sql 表中有两列(credits 和 badge)。我希望在更新积分时徽章根据积分新值进行更改。
例如,当积分
我尝试了触发器,但由于某种原因它们不起作用(MySQL 错误 #1442)
我正在使用 PhpMyAdmin 触发器:
update users
set badge = (CASE
WHEN credits < 50
THEN 1
WHEN credits >= 50
THEN 2
WHEN credits >= 100
THEN 3
WHEN credits >= 125
THEN 4
WHEN credits >= 150
THEN 5
WHEN credits >= 200
THEN 6
END)
【问题讨论】:
-
根据question,您似乎正在尝试在触发器中编辑同一个表
-
你能告诉我们你试图创建的触发器并给你一个错误吗?
-
帮助我们为您提供帮助向我们展示您尝试过的内容,有人会建议对代码进行更正或更好的方法。但是它不起作用根本没有帮助。
-
您可以在 SQL Server 中使用 case 语句创建约束,但我不确定 mysql 中的语法
-
对于这种情况,如果您的徽章取决于一系列信用,例如 100-200 = 高级,为什么还要在同一个表中同时拥有徽章和信用。那为什么不分开,我知道它不是直接回答问题,只是作为一个想法。
标签: php mysql sql triggers phpmyadmin