今天遇到一个问题:
要创建一张表,其中我想将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;
成功啦~!
原文地址:https://www.cnblogs.com/gaoquanquan/p/10801794.html
时间: 2024-11-11 04:32:46