如何使用mysql在php中按顺序确保唯一编号?

时间:2015-02-28 12:07:40

标签: php mysql

我正在开发一个Web应用程序,我必须为每个新注册人提供一个序列号。主要问题是如何确保独特性?'。我搜索了mysql提供的不同功能,发现mysql_insert_id()是最合适的解决方案。但在我遇到它之前,我需要知道这个函数是否是无线程的。更准确地说,有两个用户坐在两个不同的终端并同步提交注册表。他们是否会在执行函数mysql_insert_id()时获得相同的id?否则,我的项目将破坏。请帮忙。如果我无法澄清我的观点,请发表评论。提前致谢。

3 个答案:

答案 0 :(得分:1)

这里有详细的解决方案

CREATE TABLE Persons
(
ID int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (ID)
)

默认情况下,AUTO_INCREMENT的起始值为1,每个新记录的起始值都会增加1。 要在“人员”表中插入新记录,我们不必为“ID”列指定值(将自动添加唯一值):

答案 1 :(得分:0)

如果您的数据库中的表上有一个id列,并且该列被设置为足够的主键。即使2个人同时提交表格,ID也是唯一的。

id列可以像这样定义

ADD PRIMARY KEY (`id`)
id` int(11) NOT NULL AUTO_INCREMENT

答案 2 :(得分:0)

或者,您可以在mysql中使用UUID()函数。

  

UUID被设计为在空间和全球范围内唯一的数字   时间。对UUID()的两次调用预计会产生两种不同的调用   值,即使这些调用是在两台独立的计算机上执行的   彼此没有联系。

     

的MySQL> SELECT UUID();            - > ' 6ccd780c-巴巴-1026-9564-0040f4311e29'

有关详细信息:http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_uuid