【发布时间】:2016-06-14 20:39:03
【问题描述】:
我有一个字段“优先级”为整数的表。 此优先级最初设置为从 1 到记录数 (类似于 auto_increment)。
e.g.
Id Priority
1 1
2 2
3 3
但是,如果我想插入新记录,可以更改优先级的值 与现有的优先级。如果新记录的优先级值为 2, 当前优先级增加 1。
e.g.
Id Priority
1 1
2 3
3 4
4 2
如果我用其他值更改现有优先级,所有记录 应该减少优先级值高于更改的优先级值, 所以在表中,优先级从 1 及以上总是唯一的(无论 记录 auto_indexed Id 字段。
目前,我的解决方案是手动的(使用 Perl 代码,以适当的方式替换所有优先级值)。
由于我之前学过Mysql很长的版本,目前我用的是5.0版本, 不知mysql是否有自动更新列的功能。
【问题讨论】:
-
像任何其他“体面”的数据库一样:triggers
-
@MarcB:在 MySQL 中更新触发器来自的同一个表是不可能的 AFAIK。