首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYSQL是否在更新时自动将列实体增加1?

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

Stack Overflow用户
提问于 2010-12-28 20:27:29
回答 4查看 7K关注 0票数 5

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

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

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

有没有更快的方法呢?mysql中有没有可以自动做++的系统?类似于自动增量,但对于自身的单个实体?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-28 20:34:41

我看到了两个选择:

1.

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

代码语言:javascript
复制
UPDATE `table` SET
   `data` = 'new_data',
   `update_counter` = `update_counter` + 1
WHERE `id` = 123

2.

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

代码语言:javascript
复制
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
票数 15
EN

Stack Overflow用户

发布于 2010-12-28 20:30:42

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

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

票数 2
EN

Stack Overflow用户

发布于 2010-12-28 20:30:10

您可以在trigger上查看

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

代码语言:javascript
复制
update table set count=count+1 ;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4546023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档