mysql - 如何在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`);
我需要在上面的表结构中添加另一个具有自动增量的键
解决方案
你的问题有点令人困惑。你说你想添加第二个主键,它将自动递增......这没有意义。它们被称为主键是有原因的。表上只有一个主键,因为它是主键。
我认为您想要做的是有一个自动增量 ID 用作 PK,您可以将其包含在您的创建表中,就像 Arshad 回答的那样。
那时,您要做的是使用您的自动增量 ID 作为主键(与您对 PK 所做的方式相同,但只将新 ID 放入 PK,而不是其余字段。),然后您将需要使用唯一索引来确保 ( yearr
, volume
, issue
, pagefromto
, pissn
) 的组合不会重复。
请参阅此文档以获取有关索引创建的更多信息
请注意,如果您的表已经创建,您必须先删除旧的主键,然后才能将其添加到 ID 上。
推荐阅读
- c# - 当我尝试反序列化时,DataContractSerializer 为所有变量返回 null
- html - 引导列内的光滑滑块自定义点
- ios - SWIF 错误消息:实例化视图控制器...但没有获得 UICollectionView。
- ios - 有人在使用 Xcode 12 构建时面临 Xcode 崩溃吗?
- python - 如何将python后端与flask和html&css连接起来
- windows-subsystem-for-linux - 有没有办法让 WSL2 将其文件夹安装在 Windows Preview Build 20211 之外的另一个驱动器上?
- javascript - 高级重载命令
- flutter - 如何在flutter中使用Camera Plugin录制视频?
- powershell - Powershell - 可以从数千个 yaml 文件中提取值并将它们导出到文本文件
- c# - 调用图 API C#