删除后保持MySQL值顺序

时间:2013-03-30 22:55:28

标签: mysql triggers sequence

假设我在MySQL数据库中有一个名为“Test”的表(其中id是主键):

id | entry |
---+-------+
 1 |  a    | 
 2 |  b    | 
 3 |  c    | 
 4 |  c    | 
 5 |  d    | 
 6 |  e    | 

我想知道的是,在从表中删除一行后,如何将id值保留在序列{1,2,3,...,n-1,n}中。例如,假设我执行以下操作:

 DELETE FROM Test WHERE id = 4;

然后我希望删除后表格看起来像这样:

 id | entry |
 ---+-------+
  1 |  a    | 
  2 |  b    | 
  3 |  c    | 
  4 |  d    | 
  5 |  e    |

我认为解决方案是使用数据库触发器,但我不太确定如何创建实现此行为的触发器。

1 个答案:

答案 0 :(得分:2)

您可以运行此查询:

SET @id = 0;
UPDATE `Test` SET `id` = @id:= @id + 1;

虽然我不知道你为什么要...