MySQL で既存の主キー列を自動インクリメントに変換する
多くのインスタンスでは、既存の主キー列を含むデータベースの取得が必要ですが、自動インクリメントがありません特徴。これまでコード内で手動インクリメントが使用されてきましたが、データベース管理を改善するには自動インクリメンターに切り替えることが望ましいです。
既存の列への自動インクリメントの追加
既存の主キー列を自動インクリメントする列に変換するには、次の手順に従います:
ALTER TABLE <table-name> MODIFY COLUMN <column-name> INT NOT NULL AUTO_INCREMENT;
たとえば、「foo」テーブルの主キー列「id」を変更するには:
ALTER TABLE foo MODIFY COLUMN id INT NOT NULL AUTO_INCREMENT;
変更を確認するには、SHOW CREATE TABLE コマンドを使用します。
SHOW CREATE TABLE foo;
次のような行が出力されます。
...`id` INT(11) NOT NULL AUTO_INCREMENT, ...
Testing Auto-インクリメント機能
自動インクリメントが期待どおりに機能することを確認するには、「id」列の値を指定せずに新しいレコードを挿入します。
INSERT INTO foo () VALUES ();
'foo' テーブルには、新しく自動インクリメントされた値が表示されます。
アドレス指定エラー 150
テーブルの名前を変更するときにエラー 150 が発生した場合は、競合が原因である可能性があります。外部キー制約あり。これを解決するには、主キー列を変更した後、外部キー関係を削除して再作成する必要がある場合があります。
以上がMySQL で既存の主キー列を自動インクリメントに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。