您的位置:首页 > 数据库 > MySQL

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

2013-10-29 11:23 429 查看
在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的话会根据第一个来计算。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐