0

假设我在 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    |

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

4

1 回答 1

2

你可以运行这个查询:

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

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

于 2013-03-30T23:00:47.063 回答