主键必须是数据库表中的第一个字段吗?
如果我把id放在名字后面,查询会不会变慢?
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;发布于 2011-12-04 22:10:59
我认为这将完成前面的答案:
每个表只能有一个AUTO_INCREMENT列,必须对其进行索引,并且不能有默认值。只有当AUTO_INCREMENT列仅包含正值时,它才能正常工作。插入负数被视为插入一个非常大的正数。这样做是为了避免数字从正数“换行”到负数时出现精度问题,也是为了确保不会意外获得包含0的AUTO_INCREMENT列。
因此,对于主键在表中的位置没有限制。
希望这能有所帮助。
发布于 2011-12-04 08:51:42
使用/放置主键作为数据库中的第一个字段是一般惯例,但如果将第二个字段(id)定义为主键,这并不重要,并且不会使查询速度变慢
https://stackoverflow.com/questions/8372279
复制相似问题