确定主键号码的标准方法是什么?

时间:2008-10-28 19:26:35

标签: php mysql database

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

初步搜索已在mySQL中调出AUTOINCREMENT关键字。但是,我仍然想知道这是否适合我想要的以及这个问题的常见解决方案。

7 个答案:

答案 0 :(得分:19)

在MySQL中standard solution.

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

答案 1 :(得分:6)

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

假设你有一个表table =(a,b,c),其中a是主键,那么insert语句将是

插入表(b,c)值('bbb','ccc')

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

答案 2 :(得分:4)

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

答案 3 :(得分:1)

AUTOINCREMENT是自动创建唯一键的标准方法。它将从1开始(或0,我不记得并且没关系)然后随着添加到表中的每个新记录的增加而增加。如果删除了某条记录,其密钥将重复使用。

答案 4 :(得分:1)

自动增量主键是相对标准的,具体取决于您与哪个DBA进行通话。

我相信基本身份整数会在用完房间之前达到20亿行(这对mySQL来说是正确的吗?),这样你就不必担心会出现上限。

答案 5 :(得分:1)

AUTO_INCREMENT是常见的选择,它设置从1开始到您插入的每个新行的数字。确定要使用哪个数字的所有工作都是由db完成的,如果你需要,你只需要在插入后再问一下(在php中你通过callin mysql_last_insertid得到它我认为)

答案 6 :(得分:0)

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