mysql 如何实现在一张表里某个字段根据另一个字段自增长

在mysql语法里,只允许一个字段设置成AUTO_INCREMENT,那在mysql能否实现一个字段值根据另一个字段值进行“自增长”,只所以加个引号,是因为第二个字段是某中意义上的自增长,看一下需求例子:

column_a   column_b     column_c ....
1          1
2          1
3          1
4          1
1          2
2          2
1          3
如果我想新增加一条column_b的值为2的记录时,column_a的值自动为3;或当我新增加一条column_b的值为1的记录时,column_a的值自动为5。如果实现上面这个的需求,这个表结构如何来设计? 

CREATE TABLE mytable (
   column_a INT NOT NULL AUTO_INCREMENT,
   column_b INT NOT NULL,
   column_c CHAR(30) NOT NULL,
   column_d MEDIUMINT NOT NULL,
   PRIMARY KEY (column_b,column_a)
   ) ENGINE=MyISAM;

INSERT INTO mytable (column_b, column_c, column_d) VALUES(1,'aa',11),(1,'bb',11),(2,'cc',22),(1,'dd',11),(2,'ee',22),(3,'ff',33),(1,'gg',11),(2,'hh',22);

之前对组合索引的顺序没怎么注意,原理就是建立一个组合索引,如果组合所以第二个字段值是auto_increment的话会根据第一个来计算。

 

你可能感兴趣的:(mysql 如何实现在一张表里某个字段根据另一个字段自增长)