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