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(
spanchar(4) NOT NULL,
BeforeNowchar(6) NOT NULL,
StockCodechar(10) NOT NULL,
marketvarchar(50) NOT NULL,
WordRankint(11) NOT NULL AUTO_INCREMENT,
Hinshivarchar(20) NOT NULL,
WORDvarchar(20) NOT NULL COMMENT '単語',
numint(11) NOT NULL,
FromDatePriceint(11) NOT NULL,
ToDatePriceint(11) NOT NULL,
UpDownPctdecimal(10,4) DEFAULT NULL COMMENT '騰落率(100%は1)',
FromDatedate NOT NULL,
ToDatedate NOT NULL,
updatedaytimedatetime NOT NULL,
updatenumint(11) NOT NULL,
PRIMARY KEY (span,BeforeNow,StockCode,market,WordRank),
KEYidx1_tbl_pubsv_wordranking_withstock(Hinshi,WORD),
KEYidx2_tbl_pubsv_wordranking_withstock(WordRank)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='銘柄毎の単語ランキングテーブル_pubsv' AUTO_INCREMENT=1 ;
