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 に答える