码迷,mamicode.com
首页 > 数据库 > 详细

mysql——非主键自增

时间:2019-05-02 11:56:13      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:datetime   结构   http   efault   timestamp   报错   自增   创建表   class   

今天遇到一个问题:

要创建一张表,其中我想将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——非主键自增

标签:datetime   结构   http   efault   timestamp   报错   自增   创建表   class   

原文地址:https://www.cnblogs.com/gaoquanquan/p/10801794.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!