如何理解阿里巴巴开发手册中关于主键索引命名的规范?

发布于 2022-09-11 16:09:25 字数 195 浏览 15 评论 0

这是阿里巴巴Java开发手册中MySQL建表规约中关于索引的定义,其中:主键索引名为pk_字段名
InnoDB不是默认会为主键创建索引么,这个索引如何命名?
请MySQL大佬解惑

clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

花开半夏魅人心 2022-09-18 16:09:25

主键索引命名应该是针对Oracle或其他数据库吧,MySQL暂时没找到指定主键索引名字的语法,一般主键索引名默认都是PRIMARY。
MySQL和Oracle对于主键索引还有不一样的地方,Oracle的主键索引就是额外的建了一个具有唯一和不为空属性的索引,而MySQL的表本身是一个聚集索引,索引键就是主键,所以并不是为主键建索引,而是以主键为索引键,以B树的结构去组织表数据。
对于主键索引的名字,只针对能人工指定主键索引名字的数据库,在管理的时候,谁也说不准索引叫什么名字,第一是数据库内部的不确定性,你并不能预测索引名是什么,第二就是涉及规范了,在没有规范约束的情况下,有些人让数据库自己去确定索引名,有些人喜欢自己指定名字。那么在管理主键的时候,不能避免地,都要去确认一下主键是哪些列,对应的索引是什么。
所以为了方便管理,也出于规范化,干脆统一要求主键的命名规范了。

单身情人 2022-09-18 16:09:25

自动创建的名称每次都不一样, 不便于后续的脚本化管理.

可以用

create table testpk(
id int,
nm text,
CONSTRAINT `pk_id` PRIMARY KEY (`id`)
);

指定约束名称, 但对Primary key, MySQL会忽略为主键指定的名称。

In MySQL, the name of a PRIMARY KEY is PRIMARY.

https://dev.mysql.com/doc/ref...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文