回答:
ALTER TABLE document MODIFY COLUMN document_id INT auto_increment
Romanは正しいですが、auto_increment列はPRIMARY KEYまたはUNIQUE KEYの一部である必要があることに注意してください(ほとんどの場合、これはPRIMARY KEYを構成する唯一の列である必要があります)。
ALTER TABLE document MODIFY document_id INT AUTO_INCREMENT PRIMARY KEY
私の場合、それを入れnot null
たときにのみ機能しました。これは制約だと思います。
ALTER TABLE document MODIFY COLUMN document_id INT NOT NULL AUTO_INCREMENT;
これを行うSQLは次のとおりです。
ALTER TABLE `document` MODIFY COLUMN `document_id` INT AUTO_INCREMENT;
SQLが機能しない理由はいくつかあります。最初に、データ型を再指定する必要があります(INT
この場合)。また、変更しようとしている列にはインデックスを付ける必要があります(主キーである必要はありませんが、通常はこれが必要です)。さらに、AUTO_INCREMENT
テーブルごとに1つの列しか存在できません。したがって、次のSQLを実行することをお勧めします(列にインデックスが付けられていない場合)。
ALTER TABLE `document` MODIFY `document_id` INT AUTO_INCREMENT PRIMARY KEY;
詳細については、MySQLのドキュメントをご覧ください。http://dev.mysql.com/doc/refman/5.1/en/alter-table.htmlカラムの変更構文とhttp://dev.mysql.com/doc列の指定の詳細については、/ refman / 5.1 / en / create-table.htmlをご覧ください。
auto_increment
ディレクティブの前に列のタイプを指定する必要がありますALTER TABLE document MODIFY COLUMN document_id INT AUTO_INCREMENT
。
MODIFY COLUMN
あなたはこのようにそれを行うことができます:
alter table [table_name] modify column [column_name] [column_type] AUTO_INCREMENT;
次のクエリを使用して、document_idを自動的に増加させることができます
ALTER TABLE document MODIFY COLUMN document_id INT auto_increment
document_idを主キーにすることも推奨されます
ALTER TABLE document MODIFY COLUMN document_id INT auto_increment PRIMARY KEY;
以下のステートメントは機能します。列名のデータ型について再度言及する必要があることに注意してください(以前の列のデータ型を再宣言します)。
ALTER TABLE document
MODIFY COLUMN document_id int AUTO_INCREMENT;
alter table tbl_user MODIFY COLUMN id int(10) auto_increment;
ALTER TABLE table_name MODIFY COLUMN idデータ型auto_increment;