工作中遇到MySQL的实际问题:
当新增加一条column_b的值为2的记录时,column_a的值自动为3;或当我新增加一条column_b的值为1的记录时,column_a的值自动为4。如果实现这个需求,这个表结构如何来设计?
column_a column_b column_c ....
1 1
2 1
3 1
1 2
2 2
...
相信很多人跟我想到的一样,组合主键索引,需要强调的是一定要注意索引的顺序:
CREATE TABLE test_table (
column_a INT NOT NULL AUTO_INCREMENT,
column_b INT NOT NULL,
column_c CHAR(30) NOT NULL,
PRIMARY KEY (column_b,column_a)
) ENGINE=MyISAM;
INSERT INTO test_table (column_b, column_c) VALUES(1,'aa'),(1,'bb'),(2,'cc'),(1,'dd'),(2,'ee');
关键所在:
1、搜索引擎必须是MyISAM,InnoDB报错;
2、组合索引的第二个字段设置AUTO_INCREMENT即可。