我打算用php和mySQL制作一个非常简单的程序。主页面将获取信息并使用该信息在数据库中创建一个新行。但是,我需要一个数字来输入主键。不幸的是,我不知道确定使用什么的正常方法。优选地,如果我删除一行,则该行的密钥将不会被重用。
初步搜索已在mySQL中调出AUTOINCREMENT关键字。但是,我仍然想知道这是否适合我想要的以及这个问题的常见解决方案。
答案 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并将其作为键插入。