mysql AUTO_INCREMENTについての注意

下記TBLで、WordRank 列に注目して欲しい。
AUTO_INCREMENT にしており、
「PRIMARY KEY (span,BeforeNow,StockCode,market,WordRank)」
と指定しているので span,BeforeNow,StockCode,market ごとに WordRank がナンバリングされそうだが、そうはならない。
「 KEY idx2_tbl_pubsv_wordranking_withstock (WordRank)」
と指定しているためこちらが優先され、その結果、全てのレコードで通番でのナンバリングをされることになる。

CREATE TABLE IF NOT EXISTS tbl_pubsv_wordranking_withstock (
span char(4) NOT NULL,
BeforeNow char(6) NOT NULL,
StockCode char(10) NOT NULL,
market varchar(50) NOT NULL,
WordRank int(11) NOT NULL AUTO_INCREMENT,
Hinshi varchar(20) NOT NULL,
WORD varchar(20) NOT NULL COMMENT '単語',
num int(11) NOT NULL,
FromDatePrice int(11) NOT NULL,
ToDatePrice int(11) NOT NULL,
UpDownPct decimal(10,4) DEFAULT NULL COMMENT '騰落率(100%は1)',
FromDate date NOT NULL,
ToDate date NOT NULL,
updatedaytime datetime NOT NULL,
updatenum int(11) NOT NULL,
PRIMARY KEY (span,BeforeNow,StockCode,market,WordRank),
KEY idx1_tbl_pubsv_wordranking_withstock (Hinshi,WORD),
KEY idx2_tbl_pubsv_wordranking_withstock (WordRank)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='銘柄毎の単語ランキングテーブル_pubsv' AUTO_INCREMENT=1 ;

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください