首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >主键位置

主键位置
EN

Stack Overflow用户
提问于 2011-12-04 08:33:49
回答 2查看 374关注 0票数 4

主键必须是数据库表中的第一个字段吗?

如果我把id放在名字后面,查询会不会变慢?

代码语言:javascript
运行
复制
CREATE TABLE users
(
    name TEXT NOT NULL,
    id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
    site INTEGER NOT NULL,
    ... 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-04 22:10:59

我认为这将完成前面的答案:

每个表只能有一个AUTO_INCREMENT列,必须对其进行索引,并且不能有默认值。只有当AUTO_INCREMENT列仅包含正值时,它才能正常工作。插入负数被视为插入一个非常大的正数。这样做是为了避免数字从正数“换行”到负数时出现精度问题,也是为了确保不会意外获得包含0的AUTO_INCREMENT列。

因此,对于主键在表中的位置没有限制。

希望这能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2011-12-04 08:51:42

使用/放置主键作为数据库中的第一个字段是一般惯例,但如果将第二个字段(id)定义为主键,这并不重要,并且不会使查询速度变慢

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8372279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档