MySQL 非主键自增

2023-12-01

我想知道是否/如何可以为每个主键设置第二列自动增量:

CREATE TABLE test (
    `id` INTEGER UNSIGNED NOT NULL,
    `subId` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    `text` VARCHAR(45) NOT NULL,
    PRIMARY KEY (`id`, `subId`)
)
ENGINE = InnoDB;

不幸的是,这个创建不起作用,只有当我指定时ID作为主键和subId作为索引键(但我需要它们一起并且ID可以重复)。

示例数据(我需要的):

1, 1
1, 2
1, 3
2, 1
2, 2
3, 1

制作的问题ID初级和subId索引是subId将独立增加ID.

如何实现这一目标?这可能吗?


我不得不处理类似的问题,以不自然的方式排序类别树。 如果您一次插入一个 id 的所有行,则可以对每个 subId 执行如下操作:

SET @seq = 0;
INSERT INTO test
  (id,  subId,            text) VALUES
  (_id, @seq := @seq + 1, 'Some text')
;

如果您需要将一行“添加”到 id,您可以设置 @seq

SELECT IFNULL(MAX(subId), 0) INTO @seq FROM test WHERE id = _id;

这当然需要应用程序而不是 mySQL 来管理 id。

您也可以执行与最后一个代码块相同的操作来获取下一个可用的 id。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL 非主键自增 的相关文章

随机推荐

  • 什么时候适合在 Android 中使用 Enum?

    我看到了视频 https www youtube com watch v Hzs6OBcvNQE 从谷歌发布了关于枚举价格的信息 我确信枚举成本更高并且存在性能问题 但是 当我需要在枚举中包含多个信息时该怎么办 我是否必须创建 intdef
  • 有没有办法使用 php 解压缩 .Z 文件?

    有没有办法使用 php 解压缩 Z 文件 如今uncompress只不过是一句台词而已gzip有适当的选择 使用gzip 你没有执行 shell 您可以使用Zlib 扩展反而 我会尝试这样的事情
  • c# Visual Studio Project Installer 将文本框中的数据保存到文本文件中

    经过大量研究后 我必须询问你们才能让我的项目最终运行 我想将用户放入 Visual Studio 项目安装程序的文本框中的数据保存到文本文件中 我读过不同的文章 还有这篇文章 C Visual Studio 项目安装程序从文本框检索数据 但
  • Android Studio 与 opencv for android ndk,未找到 opencv 头文件

    我正在使用 Android Studio 进行 Android OpenCV 开发 但是当我编译在 eclipse 中正常的项目时 出现以下错误 D software AndroidStudioProjects CameraMe openC
  • WordPress 上的评论作者链接

    在 WordPress 表单中 当您以访客身份留下评论时 会出现一个网站字段来填写您的网址 如果我们填写该框 我们可以通过调用此函数来获取链接 但是 如果您已登录并且未在您的个人资料中添加该网站 那么当您发表评论时 您的用户名上没有链接 我
  • npm 错误:无法建立隧道套接字,原因=connect ETIMEDOUT

    我有一个使用 Rails 框架并实现 AngularJs 作为前端一部分的应用程序 我已将所有内容推送到 Heroku 并安装了 Heroku Toolbelt 但是当我尝试使用 heroku run rake db migrate 迁移数
  • ASP.NET MVC 和 Ajax,并发请求?

    AJAX 新手来了 目前 在我的 ASP NET MVC Web 应用程序中 我的 AJAX 请求似乎正在批量或排队 我不确定 在前一个请求完成之前 似乎没有任何请求完成 我该如何获得独立返回的请求 我不一定希望有人给我答案 但也许一些可以
  • 任务“:app:checkDebugAarMetadata”执行失败

    我在运行我的应用程序时收到此错误 Execution failed for task app checkDebugAarMetadata gt Could not resolve all files for configuration ap
  • 增量定义?

    无论如何 每次使用它时都有一个定义的增量吗 例如 int a ADEFINE int b ADEFINE a 为 1 b 为 2 您可以使用 COUNTER 尽管这不是标准的 MSVC 和 GCC 都支持它 如果你可以使用boost 预处理
  • p:fileUpload 在哪里保存我的文件?

    我的页面上有一个 p fileUpload 函数 每次上传文件时 我似乎都无法在 web xml 文件中指定的文件夹中找到它 我已将以下 jar 添加到我的库中 primefaces 3 2 jar commons io 2 3 jar c
  • SVG tspan 未与 text-anchor="end" 对齐的问题

    我有一些这样的代码 svg font family Verdana sans serif color 000 key font size 75 overflow visible caphgh font weight bold keynor
  • 这段代码的作用是什么?

    我不太确定这意味着什么或它在做什么 有人可以详细说明吗 Player player Player sender 它获取发送者引用的对象 并尝试将其转换为 Player 类型 Java 对象是强类型的 这意味着您必须声明对象的类型 如果发送者
  • 如何在 TFS 中反序列化和序列化构建过程参数

    我正在尝试使用 TFS 2013 API 创建新的构建定义 我必须引用的流程模板包含几个自定义活动和参数 创建构建定义时 一些属性值需要动态更新 所以我尝试使用以下代码反序列化过程参数 IDictionary
  • 多个自定义滚动条

    我想知道的是是否可以在同一页面上有多个定制的 webkit scrollbars 我制作了一些特定的 div 颜色 例如一个 div 有绿色文本和图像 另一个有蓝色等 所以我想为每个 div 制作一个自定义滚动条 使其与颜色匹配 Q1 可以
  • 如何使用 Google 脚本将日历事件复制(复制)到另一个日历中?

    我在 Google 日历中有几个日历 我正在学习 Google 脚本 并希望创建一个脚本 将事件从我的一个日历复制到另一个日历 并有机会修改参数 例如重复发生 一些代码开始 function myFunction var calendarS
  • 检查列表列表中是否存在某个项目的最佳方法? [复制]

    这个问题在这里已经有答案了 我有这样的示例列表 example list aaa fff gg ff gg 现在 我检查它是否有空字符串 如下所示 has empty False for list1 in example list for
  • bash: /bin/myscript: 权限被拒绝

    我已将文件夹的路径添加到 linux mint 15 中的 bashrc 其中包含我的脚本 据我所知 我的脚本应该像 bash 脚本一样工作 但每次我尝试使用我的脚本之一时 都会出现以下错误 bash bin myscript permis
  • iPhone Facebook Graph API 库

    是否存在使用新 Facebook Graph API 的 iPhone 库 这个库很棒 http www capturetheconversation com technology iphone facebook oauth 2 0 and
  • 处理响应 - SyntaxError:使用模式时出现意外的输入结束:“no-cors”

    我尝试了对 REST API 的 ReactJS 获取调用 并希望处理响应 调用成功 我收到响应 我可以在 Chrome 开发工具中看到该响应 function getAllCourses fetch http localhost 8080
  • MySQL 非主键自增

    我想知道是否 如何可以为每个主键设置第二列自动增量 CREATE TABLE test id INTEGER UNSIGNED NOT NULL subId INTEGER UNSIGNED NOT NULL AUTO INCREMENT