我有一个表: ID,name,count,varchar(255)
现在,我想要的是在每次更新表中的行时增加"count“。
当然,最简单的方法是先读取,获取值,在php中加1,然后用新值更新。但!
有没有更快的方法呢?mysql中有没有可以自动做++的系统?类似于自动增量,但对于自身的单个实体?
发布于 2010-12-28 20:34:41
我看到了两个选择:
1.
只需将此逻辑添加到每个更新查询
UPDATE `table` SET
`data` = 'new_data',
`update_counter` = `update_counter` + 1
WHERE `id` = 1232.
创建一个自动完成工作的触发器:
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发布于 2010-12-28 20:30:42
创建触发器:http://dev.mysql.com/doc/refman/5.1/en/create-trigger.html
触发器是由数据库在某些事件上“触发”的代码片段。在您的情况下,该事件将是一次更新。许多关系型数据库支持触发器,MySQL也是如此。使用触发器的好处是,更新此实体的PHP逻辑的每一部分都将隐式地调用触发器逻辑,当您想要从不同的PHP逻辑更新实体时,您不必再记住这一点。
发布于 2010-12-28 20:30:10
https://stackoverflow.com/questions/4546023
复制相似问题