次のようなCREATE文はエラーになるようです。
CREATE TABLE test( id int not null, no int not null auto_increment, value varchar(50), constraint primary key(id, no) );
実行すると
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
ってエラーが出ます。訳すと
正しくないテーブル定義です。自動列はひとつだけ許されており、そしてそれはキーとして定義されていなくてはなりません。
だろうか?
なに言っちゃってんのこの人?
ちゃんと1つだけでしょう?それに、ちゃんと主キーになってるでしょう?
上記の例は、ヘッダテーブルとidで関連させる明細テーブルを作りたくてこうなっているんですね。
で、連番(no)の採番が面倒くさいからAUTO_INCREMENTにしたいのに。
けしからんですね。自分で連番管理するしかないのか。
Oracleなんかだとシーケンス使うから関係ないですが、MySQL確かシーケンスないよね。
★ ★ ★
ちなみに当然ですが、次のSQLはOKです。
CREATE TABLE test( id int not null auto_increment, no int not null, value varchar(50), constraint primary key(id, no) );
またこれも当然ですが、次のSQLはNGです。エラーになります。
CREATE TABLE test( id int not null auto_increment, no int not null auto_increment, value varchar(50), constraint primary key(id, no) );