今天遇到一個問題:
要創建一張表,其中我想將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;
成功啦~!
重置自增id:
alter table `dns_qlb` auto_increment=1
