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

サブクエリmysqlを使用して同じテーブル内のauto_incrementを変更します

    パーサーは、使用しようとしている場所でのサブクエリをサポートしていません。

    これは、MySQLソースからの抜粋です。sql/ sql_yacc.yyから:

    create_table_option:
        . . .
        | AUTO_INC opt_equal ulonglong_num
    

    そこで読むべきことは、AUTO_INCREMENT tableオプションは、式、サブクエリ、変数などではなく、単一のリテラル番号のみを受け入れます。したがって、SELECT MAX(id)+1を実行するのと同じステートメントでAUTO_INCREMENTを設定することはできません。 。

    しかし、そうする必要はありません。

    MySQLは、自動インクリメントIDを 未満に割り当てることはありません。 現在テーブルにある最大値。したがって、ID値が102のテーブルがある場合、次に割り当てられる値は少なくともになります。 103.

    AUTO_INCREMENT =50を明示的に設定することもできますが、それは自動的にMAX(id)+1に増加します。



    1. 製品の数量を合計するuser_idでグループ化された注文のテーブルを生成します

    2. mysqlでINNODBを有効にする方法

    3. ALTERTABLEスクリプトのMySQL変数

    4. MariaDBで重複する行を選択する4つの方法