我打算用php和mySQL做一个非常简单的程序。主页面将获取信息并利用该信息在数据库中创建一个新行。但是,我需要一个数字来输入主键。不幸的是,我不知道确定使用什么的正常方法。最好,如果我删除一行,该行的密钥将不会被重用。确定主键号码的标准方法是什么?
一个初步的搜索已经打开了mySQL中的AUTOINCREMENT关键字。但是,我仍然想知道这是否能满足我的需求,以及这个问题的常见解决方案是什么。
我打算用php和mySQL做一个非常简单的程序。主页面将获取信息并利用该信息在数据库中创建一个新行。但是,我需要一个数字来输入主键。不幸的是,我不知道确定使用什么的正常方法。最好,如果我删除一行,该行的密钥将不会被重用。确定主键号码的标准方法是什么?
一个初步的搜索已经打开了mySQL中的AUTOINCREMENT关键字。但是,我仍然想知道这是否能满足我的需求,以及这个问题的常见解决方案是什么。
在MySQL中是这样的standard solution.
CREATE TABLE animals (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
PRIMARY KEY (id)
);
AUTOINCREMENT是你想要的。只要您不更改表格的设置,AUTOINCREMENT将继续增长。
AUTOINCREMENT是标准的方式来自动创建一个唯一的密钥。它将从1开始(或0,我不记得,也没关系),然后每增加一个新记录就增加到表中。如果记录被删除,其密钥将被重新使用而不是。
自动增加主键是相对标准的,具体取决于您在哪个DBA与哪周谈话。
我相信在用完房间之前,基本的身份整数将会达到约20亿行(这对mySQL是否适用?),所以您不必担心打破上限。
AUTO_INCREMENT是常用选项,它设置一个从1开始到插入的每一个新行的数字。所有确定使用哪个数字的工作都是由db完成的,如果需要(如果需要的话,你可以在插入后问问题)
除非你有一个压倒一切的理由生成自己的PK然后使用自动增量就足够了。这样数据库管理密钥。当你插入一行时,你必须省略主键列。
假设你有一个表表=(A,B,C),其中a是主键然后插入语句将是
插入到表(B,C)的值( 'BBB',“CCC ')
并且主键将被数据库自动插入。
对于简单的自动增量是最好的。对于最终会有很多条目的更复杂的事情,我生成一个GUID并将其作为关键字插入。