什么是确定主键编号的标准方式?

4
我计划使用PHP和MySQL制作一个非常简单的程序。主页面将获取信息并在数据库中创建一个新行。然而,我需要一个数字来作为主键。不幸的是,我不知道确定使用哪个数字是正常的方法。最好的情况是,如果我删除一行,该行的主键将永远不会被重用。
初步搜索发现MySQL中有AUTOINCREMENT关键字。但是,我仍然想知道它是否适用于我想要的内容,以及这个问题的常见解决方案是什么。
7个回答

19

在MySQL中,这是标准解决方案:自动增量。

CREATE TABLE animals (
     id MEDIUMINT NOT NULL AUTO_INCREMENT,
     name CHAR(30) NOT NULL,
     PRIMARY KEY (id)
 );

6

如果您没有一个优先考虑的原因来生成自己的主键,那么使用自动增量就足够了。这样数据库就可以管理键值。插入一行时,必须省略主键列。

假设您有一个表table =(a,b,c),其中a是主键,那么插入语句如下:

insert into table (b, c) values ('bbb', 'ccc')

主键将由数据库自动插入。


4

AUTOINCREMENT就是你想要的。只要你不改变表格的设置,AUTOINCREMENT将会继续增长。


1

AUTOINCREMENT是自动创建唯一键的标准方式。它将从1(或0,我记不清了,也无关紧要)开始,然后随着每个新记录添加到表中而递增。如果删除记录,则其键将不会被重用。


1

自动递增的主键在不同的数据库管理员和时间里是相对标准的。

我相信基本身份整数将在大约20亿行(这对于MySQL是否正确?)后用完空间,因此您不必担心达到上限。


1

AUTO_INCREMENT 是常见的选择,它为每个新插入的行设置从 1 开始的数字。所有关于使用哪个数字的工作都由数据库完成,您只需要在插入后询问它(在 PHP 中,您可以通过调用 mysql_last_insertid 来获取它)。


0

对于一些简单的情况,自动递增是最好的选择。对于一些更加复杂的情况,最终会有很多条目,我会生成一个GUID并将其插入为键。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接