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
),
KEYidx1_tbl_pubsv_wordranking_withstock
(Hinshi
,WORD
),
KEYidx2_tbl_pubsv_wordranking_withstock
(WordRank
)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='銘柄毎の単語ランキングテーブル_pubsv' AUTO_INCREMENT=1 ;