我有一个名为Users的表,我有一个editVersion列。
+----+------+-------------+
| id | name | editVersion |
+----+------+-------------+
| 1 | John | 1 |
+----+------+-------------+
添加新用户后,我想为他们分配最高的editVersion,如
+----+------+-------------+
| id | name | editVersion |
+----+------+-------------+
| 1 | John | 1 |
| 2 | Jane | 2 |
+----+------+-------------+
在对任何用户进行每次编辑之后,我想在editVersion列中为它们分配最高的editVersions。就像John的名字改为John Doe一样,他的editVersion将改为
+----+----------+-------------+
| id | name | editVersion |
+----+----------+-------------+
| 1 | John Doe | 3 |
| 2 | Jane | 2 |
+----+----------+-------------+
我的问题是如何在不必查询Max(editVersion)表的情况下执行此操作。我可以使用触发器吗?如果是这样,怎么样?
或者我可以编写一个sql Update,在设置字段的同时,我还可以获取Max(editVersion),增加它并分配给editVersion?
答案 0 :(得分:1)
我不确定这种功能的目的是什么。但如果明确更新此editVersion
字段,则可能会失败。
建议:
BEFORE
定时INSERT
和UPDATE
触发器。MAX( editVersion ) + 1
到局部变量。NEW.editVersion
。