ID と呼ばれる主キーと、請求に関連する 6 つの他のフィールドを持つ EXISTING テーブルがあります。古いテーブルから値を挿入し、すべての値を新しいが最近作成されたテーブルに挿入する必要があります。古いテーブルには請求書番号が記載されており、請求書番号が重複している場合があります。作成しようとしているこの新しい列が必要です。invoice_id
挿入される将来の値に値が挿入されない場合は AUTO_INCREMENT に呼び出され、既存の値と将来の値の重複を許可します。値が挿入されていない場合は、auto_increment する必要があります。
ID (primary) || invoice_ID (needs to auto_increment AND allow duplicates) || other colums
1 || 1
2 || 2
3 || 2
4 || 3
私はいくつかのコマンドを試しましたが、これが起こります:
ALTER TABLE `invoices` ADD `invoice_ID` INT NOT NULL AUTO_INCREMENT AFTER `ID` ,
ADD PRIMARY KEY ( `facture` )
結果:
MySQL said:
#1075 - Incorrect table definition; there can be only one auto column and it must be
defined as a key
また試した:
ALTER TABLE `invoices` ADD `invoice_ID` INT NOT NULL AUTO_INCREMENT AFTER `ID` ,
ADD KEY ( `invoice_ID` ) ,
ADD INDEX ( `invoice_ID` )
結果:
#1075 - Incorrect table definition; **there can be only one auto column** and it must
be defined as a key
もちろん、主キーとして追加しないなど、いくつかの異なるオプションも試しましたが、auto_increment リクエストを追加するとすぐに、クエリが「AS PRIMARY KEY」になるようです。