首页 > 解决方案 > 如何在MYSQL中设置主键自动递增

问题描述

CREATE TABLE `journal` (
  `yearr` int(4) NOT NULL,
  `monthh` char(3) NOT NULL,
  `volume` int(4) NOT NULL,
  `issue` int(4) NOT NULL,
  `pagefromto` varchar(10) NOT NULL,
  `pissn` varchar(20) NOT NULL,
  `eissn` varchar(20) DEFAULT NULL,
  `name` varchar(50) NOT NULL,
  `author1` varchar(10) DEFAULT NULL,
  `author2` varchar(10) DEFAULT NULL,
  `doc` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
)

ALTER TABLE `journal`
  ADD PRIMARY KEY (`yearr`,`volume`,`issue`,`pagefromto`,`pissn`);

我需要在上面的表结构中添加另一个具有自动增量的键

标签: mysql

解决方案


你的问题有点令人困惑。你说你想添加第二个主键,它将自动递增......这没有意义。它们被称为主键是有原因的。表上只有一个主键,因为它是键。

我认为您想要做的是有一个自动增量 ID 用作 PK,您可以将其包含在您的创建表中,就像 Arshad 回答的那样。

那时,您要做的是使用您的自动增量 ID 作为主键(与您对 PK 所做的方式相同,但只将新 ID 放入 PK,而不是其余字段。),然后您将需要使用唯一索引来确保 ( yearr, volume, issue, pagefromto, pissn) 的组合不会重复。

请参阅此文档以获取有关索引创建的更多信息

请注意,如果您的表已经创建,您必须先删除旧的主键,然后才能将其添加到 ID 上。


推荐阅读