就是这张table
tbl_example:
ID - unique - auto increment,
name- text
num- Notunique
created timestamp curentdatetime
使用php5.5和msyql5.5每次插入时,首先根据插入的更新时间从表中获取num的值,例如,这是获取最后一列Numvalue的查询:
$sql1 =“从表中选择编号_示例ORDER BY创建了描述限制1”
现在,当它获得已添加的最后一行的值时,使用创建列时间戳,用于插入的新查询将是例如:
$sql2 "INSERT INTO tbl_example (name, num) VALUES ('TEMPNAME', $sql1 + 1)"
注意:这里我只在查询中添加了$sql1,它在功能上不返回值,只是为了使我的问题可以理解。
在这里,列num的值将基于$sql1的结果,
$question:如果两个用户或三个用户在相同的时间运行查询,则$sql1的结果对于其中三个用户将是相同的,因为数据将插入$sql2,并且num列的值对于其中三个用户将是相同的,
由于某种原因,我无法保持列num的唯一性,
在这种情况下,我怎样才能避免重复?
3条答案
按热度按时间ztmd8pv51#
去here,他们解释如何使用
lastinsertid
。这就是你要找的。如果你想在一个用分号分隔的查询中完成它,这完全是查询和SQL的问题,而不是Php。
像这样的东西应该做的工作:
但您的问题似乎是数据库设计和缺乏客户机-服务器和SQL知识...
egmofgnx2#
你可以使用一个select into来同时执行插入:
ndasle7k3#
试试看:
或者,如果仍需要按日期排序: