长虫山小木屋

没有谁会为你踏雪而来 喜欢的风景要躬亲筚路

  博客园  :: 首页  :: 新随笔  :: 联系 ::  :: 管理

工作中遇到MySQL的实际问题:
当新增加一条column_b的值为2的记录时,column_a的值自动为3;或当我新增加一条column_b的值为1的记录时,column_a的值自动为4。如果实现这个需求,这个表结构如何来设计?

相信很多人跟我想到的一样,组合主键索引,需要强调的是一定要注意索引的顺序:
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即可。


作者:铁匠简记
链接:https://www.jianshu.com/p/dee066d0ddf5
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted on 2020-09-10 15:58  长虫山小木屋  阅读(812)  评论(0编辑  收藏  举报