2009年6月22日

[mysql 14938] Re: auto_increment属性について

こんにちは。我彦と申します。
私はドキュメントに記載を見つけられませんでした。
仕様かもしれません。バグかもしれません。

試す限り、以下の結果は得ました:

-- failed
CREATE TABLE okatest (

col_a BIGINT AUTO_INCREMENT NOT NULL
,col_b CHAR(4) NOT NULL
,PRIMARY KEY ( col_b,col_a )
) ENGINE = InnoDB;
SHOW TABLES;
DROP TABLE okatest;

-- failed
CREATE TABLE okatest (
col_b CHAR(4) NOT NULL
,col_a BIGINT AUTO_INCREMENT NOT NULL
,PRIMARY KEY ( col_b,col_a )
) ENGINE = InnoDB;
SHOW TABLES;
DROP TABLE okatest;

-- success
CREATE TABLE okatest (
col_b CHAR(4) NOT NULL
,col_a BIGINT AUTO_INCREMENT NOT NULL
,PRIMARY KEY ( col_a,col_b )
) ENGINE = InnoDB;
SHOW TABLES;
DROP TABLE okatest;

-- success
CREATE TABLE okatest (
col_b CHAR(4) NOT NULL
,col_a BIGINT AUTO_INCREMENT NOT NULL UNIQUE
,PRIMARY KEY ( col_b,col_a )
) ENGINE = InnoDB;
SHOW TABLES;
DROP TABLE okatest;

-- success
CREATE TABLE okatest (
col_b CHAR(4) NOT NULL
,col_a BIGINT NOT NULL
,PRIMARY KEY ( col_b,col_a )
) ENGINE = InnoDB;
SHOW TABLES;
DROP TABLE okatest;

-- success
CREATE TABLE okatest (
col_a BIGINT AUTO_INCREMENT NOT NULL
,col_b CHAR(4) NOT NULL
,PRIMARY KEY ( col_a,col_b )
) ENGINE = InnoDB;
SHOW TABLES;
DROP TABLE okatest;

-- success
CREATE TABLE okatest (
col_a BIGINT AUTO_INCREMENT NOT NULL UNIQUE
,col_b CHAR(4) NOT NULL
,PRIMARY KEY ( col_b,col_a )
) ENGINE = InnoDB;
SHOW TABLES;
DROP TABLE okatest;

feature request を送ってはいかがでしょう。
以上、宜しくお願いします。

Takayuki Okada wrote:
> こんにちは。
> 岡田と申します。
>
> 複数カラムのPKをもち、かつ、
> PKのうちひとつのカラムに自動採番(auto_increment)
> させるテーブルを作成したいのですが、
> (1)だとエラーになり、(2)だと正常に作成されます。
>
> 並びとしては、(1)にしたいのですが、仕様上できないのでしょうか?
>
>
> (1)
> mysql> CREATE TABLE okatest (
> -> col_b CHAR(4) NOT NULL
> -> ,col_a BIGINT AUTO_INCREMENT NOT NULL
> -> ,PRIMARY KEY (
> -> col_b,col_a
> -> )
> -> ) ENGINE = InnoDB;
> ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
>
> (2)
> mysql> CREATE TABLE okatest (
> -> col_a BIGINT AUTO_INCREMENT NOT NULL
> -> ,col_b CHAR(4) NOT NULL
> -> ,PRIMARY KEY (
> -> col_a,col_b
> -> )
> -> ) ENGINE = InnoDB;
> Query OK, 0 rows affected (0.27 sec)
>

投稿者 xml-rpc : 2009年6月22日 19:32
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/86064
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。