mysql——非主键自增

Posted gaoquanquan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql——非主键自增相关的知识,希望对你有一定的参考价值。

今天遇到一个问题:

要创建一张表,其中我想将ip和date这两列作为一个复合主键,可以通过如下语句修改表结构:

alter table tb_name add primary key (字段1,字段2,字段3);

但是这样做会报错,原因是我在最开始创建表的时候已经将id作为主键了,因此要先取消id的主键(取消之前要先将id的自增去掉,否则无法取消他的主键)。

此时这张表已经将ip和date设置为复合主键,但我仍然想将ip设为主键,此时就会报错:

emmm 大概意思就是只有key能设置自增,但是这个key并一定是主键,按照下面博客修改表结构

https://blog.csdn.net/likika2012/article/details/9951529

CREATE TABLE `single_qps_01` (
  `id` bigint(11) NOT NULL AUTO_INCREMENT,
  `ip` varchar(100) NOT NULL,
  `date` datetime NOT NULL,
  `createTime` datetime DEFAULT NULL,
  `updateTime` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`ip`,`date`),
  KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

成功啦~!

以上是关于mysql——非主键自增的主要内容,如果未能解决你的问题,请参考以下文章

mysql非主键自增长

Ef DbMigration 非主键字段 怎么设置为自增

怎么设置主键自增

JAVA中如何保证线程安全以及主键自增有序

jpa中Mysql数据库的主键自增怎么配置,pojo类该怎么写

mysql的设置主键自增