2008-10-28 52 views
4

我打算用php和mySQL做一个非常简单的程序。主页面将获取信息并利用该信息在数据库中创建一个新行。但是,我需要一个数字来输入主键。不幸的是,我不知道确定使用什么的正常方法。最好,如果我删除一行,该行的密钥将不会被重用。确定主键号码的标准方法是什么?

一个初步的搜索已经打开了mySQL中的AUTOINCREMENT关键字。但是,我仍然想知道这是否能满足我的需求,以及这个问题的常见解决方案是什么。

回答

19

在MySQL中是这样的standard solution.

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

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

1

AUTOINCREMENT是标准的方式来自动创建一个唯一的密钥。它将从1开始(或0,我不记得,也没关系),然后每增加一个新记录就增加到表中。如果记录被删除,其密钥将被重新使用而不是

1

自动增加主键是相对标准的,具体取决于您在哪个DBA与哪周谈话。

我相信在用完房间之前,基本的身份整数将会达到约20亿行(这对mySQL是否适用?),所以您不必担心打破上限。

1

AUTO_INCREMENT是常用选项,它设置一个从1开始到插入的每一个新行的数字。所有确定使用哪个数字的工作都是由db完成的,如果需要(如果需要的话,你可以在插入后问问题)

6

除非你有一个压倒一切的理由生成自己的PK然后使用自动增量就足够了。这样数据库管理密钥。当你插入一行时,你必须省略主键列。

假设你有一个表表=(A,B,C),其中a是主键然后插入语句将是

插入到表(B,C)的值( 'BBB',“CCC ')

并且主键将被数据库自动插入。

0

对于简单的自动增量是最好的。对于最终会有很多条目的更复杂的事情,我生成一个GUID并将其作为关键字插入。

相关问题