sql >> データベース >  >> RDS >> Mysql

MYSQLとinnoDBは、テーブルのAUTO_INCREMENTを動的に変更します

    ALTER TABLE ステートメントが解析されるまでに(つまり、準備時に)リテラル値が含まれている必要があります。

    解析時に変数またはパラメーターをステートメントに入れることはできませんが、のステートメントに変数を入れることはできます。 解析時間。つまり、動的SQLを使用することを意味します:

    SET @new_index = (SELECT MAX(id) FROM sales );
    SET @sql = CONCAT('ALTER TABLE sales AUTO_INCREMENT = ', @new_index);
    PREPARE st FROM @sql;
    EXECUTE st;
    


    1. エラー集計関数を回避する方法はWHEREでは許可されていません

    2. mysql:システムテーブルにトリガーを作成できませんか?

    3. 異なるデータベースは異なる名前の引用符を使用しますか?

    4. MySQLから最も古い日付を選択する方法