データベース移行用のスクリプトを作成しようとしていますが、疑問があります。多くのレジスタと整数型のキーを持つテーブルがあります。このキーは自動インクリメンタルで、'1' インデックスから始まります。
問題は、このインデックスが新しいデータベースのデフォルト値で占有されなければならないことです。したがって、データベース行をループして、各インデックスを 1 つずつインクリメントし、最初の場所を空白のままにして値を挿入したいと考えています。私はこの声明で試しました:
UPDATE `tapp`, (
SELECT @loop := id_App
FROM
tapp
) o
SET id_App = id_App + 1;
ただし、最初から各インデックスを更新しようとするため、最初のインデックスを '2' に変換しようとすると、2 番目のインデックスが既に使用されていることがわかり、作成できません。
これは MyIsam データベースであり、各外部キーも 1 つずつ更新する必要があるため、1 つずつ増やすことが重要です。私はMySQLを使用しています。
手を貸してください!