[前][次][番号順一覧][スレッド一覧]

mysql:14938

From: "wabiko.takuma" <"wabiko.takuma" <wabiko@xxxxxxxxxx>>
Date: Mon, 22 Jun 2009 19:32:43 +0900
Subject: [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)
> 


[前][次][番号順一覧][スレッド一覧]

     14933 2009-06-22 11:19 [Takayuki Okada <okad] auto_increment属性について              
     14934 2009-06-22 11:34 ┣[hiroshi morimoto <ma]                                       
     14935 2009-06-22 11:39 ┣[hiroshi morimoto <ma]                                       
     14936 2009-06-22 17:04 ┣[chuuken kenkou <ken_]                                       
     14937 2009-06-22 17:24 ┃┗[Takayuki Okada <okad]                                     
->   14938 2009-06-22 19:32 ┗["wabiko.takuma" <wab]                                       
     14940 2009-07-01 11:49  ┗[Takayuki Okada <okad]                                     
     14941 2009-07-01 14:39   ┗[Mikiya Okuno <Mikiya]                                   
     14942 2009-07-01 18:05    ┗[Takayuki Okada <okad]                                 
     14943 2009-07-01 18:47     ┗[Mikiya Okuno <Mikiya]                               
     14944 2009-07-02 08:56      ┗[Takayuki Okada <okad]                             
     14950 2009-07-06 14:27       ┗[Mikiya Okuno <Mikiya]                           
     14951 2009-07-06 15:20        ┗[Takayuki Okada <okad]                         
     14952 2009-07-06 16:12         ┗[Mikiya Okuno <Mikiya]                       
     14953 2009-07-06 16:26          ┗[Takayuki Okada <okad]