MYSQL在更新时自动将列实体增加1?

时间:2010-12-28 12:27:29

标签: mysql sql-update

我有一个表:ID,name,count,varchar(255)

现在,我想要的是每次更新表中的行时增加“计数”。

当然,简单的方法是首先读取,获取值,在php中增加1,然后使用新值更新。但!

有没有更快捷的方法呢? mysql中有一个系统可以自动执行++吗?比如autoincrement,但对于一个单独的实体呢?

4 个答案:

答案 0 :(得分:11)

我看到两个选项:

1

只需将此逻辑添加到每个更新查询

UPDATE `table` SET
   `data` = 'new_data',
   `update_counter` = `update_counter` + 1
WHERE `id` = 123

2

创建一个自动完成工作的触发器:

CREATE TRIGGER trigger_name
AFTER UPDATE
ON `table`
FOR EACH ROW
    BEGIN
        UPDATE `table`
        SET `update_counter` = `update_counter` + 1
        WHERE `id` = NEW.id
    END

答案 1 :(得分:2)

创建一个触发器: http://dev.mysql.com/doc/refman/5.1/en/create-trigger.html

触发器是数据库在某些事件上“触发”的代码片段。在您的情况下,该事件将是一个更新。许多RDBMS支持触发器,MySQL也是如此。使用触发器的优点是,每次更新此实体的PHP逻辑都将隐式调用触发器逻辑,当您想要从不同的PHP逻辑更新实体时,您不必再记住它

答案 2 :(得分:0)

您可以查看trigger

或者可以使用额外的mysql查询

update table set count=count+1 ;

答案 3 :(得分:0)

UPDATE table SET name='new value', count=count+1 WHERE id=...

SQL更新可以使用正在更新的记录中的字段作为更新本身的数据源。