これはやや奇妙ですが、作業中に何度も気づいています。私は、auto_increment制約の列名 'id'があるテーブルを持っています。この列(つまりid)の位置を変更しようとすると、auto_increment制約が削除されます。私は以下の画像とクエリを提供しました。この操作は、mysqlデータベースで実行されます。データベース内の列の位置を変更すると自動インクリメントの制約がなくなります
クエリ:クエリの後alter table login_client modify id int(11) first;
。制約auto_incremntはただ消えました。
これを行う理由は何ですか? mysqlがauto_increment属性を削除しない場合、どのような影響がありますか? – WeAreRight
ALTER TABLEは、元のテーブルの一時コピーを作成します。CHANGEまたはMODIFYを使用する場合、column_definitionには、PRIMARY KEYまたはUNIQUEなどの索引属性以外の新しい列に適用する必要があるデータ型およびすべての属性を含める必要があります。元の定義に存在するが、新しい定義には指定されていない属性は、繰り越されません。 –