4

私はmysqlを使用しています。auto_increment カウンターが設定されたデータベース テーブルがあります。要件により、最初の 100 の ID を空けておき、101 から始まるすべての既存のレコードを移動する必要があるため、現在の ID 1 は 101 になり、ID 2 は 102 になります。

レコードを 101 に移動することはできますが、問題は auto_increment カウンターを max(id)+1 に変更する方法です。

ここでの主な制約は、単一の sql ステートメントで実行する必要があることです。@counter を使用して値を保存し、後で使用することはできません。

以下のクエリを使用してみました

ALTER TABLE role AUTO_INCREMENT = (SELECT rd.counter FROM (SELECT (MAX(id) + 1) AS counter FROM role r) rd);

しかし、それは機能していません。

4

4 に答える 4