php-Mysql自动更新

一旦达到一定数量,mysql是否可以自动更新表中的字段?

我有一个称为徽章的表,它具有这些字段

ID,name,image,level, percent

我能做到的是,如果百分比字段达到某个数字(例如50),则级别字段更新为2.

我认为这会触发吗?

解决方法:

您可以做几件事.

在语法上

您甚至可以用语法编写它,尽管表中的值未更改,但仅显示其他内容.像这样

SELECT  ID, 
        name,
        image, 
        CASE WHEN percent > 50 THEN 2 ELSE level END AS Level, 
        percent FROM....

触发中

每次插入后,您必须计算该值,然后进行相应更新.也许像这样

DELIMITER $$

DROP TRIGGER IF EXISTS databasename.badges_AUPD$$
USE databasename$$
CREATE TRIGGER `badges_AUPD` AFTER UPDATE ON `badges` FOR EACH ROW

// Added this line from Andreas Wederbrands answer which is the correct way

set new.level := case when percent < 50 then 0
                    when percent < 75 then 1
                    else 2;
    $$
DELIMITER ;

在存储过程中

您可以简单地安排一个执行存储过程的事件.但是,如果您真的需要在值达到50后就进行更改,则此方法将无效.

CREATE PROCEDURE `updateLevel` ()
BEGIN
UPDATE badges set level=2 WHERE precentage > 50;
END
上一篇:如何在触发器中放置多个更新?


下一篇:Javascript:在函数退出时触发动作