php - 如何使用插入数据的 ID 创建数据摘要

标签 php mysql

我有一个 MySQL 函数,可以为给定的表生成标识符 ID。表有复合键;

id - Auto_increment
act_id - BigInt(16). Its the ID obtained from the function below.

该函数返回 BigInt(16)

BEGIN 
 DECLARE qid integer;
 SELECT max(id)+1 into qid from wi_activity;
 IF(qid IS NULL) THEN
    SET qid=1;
END IF;
RETURN convert(concat(6,DATE_FORMAT(CURDATE(),'%d%m%Y'),lpad(qid,7,'0')), unsigned integer);
END

问题 1:

该网站有多个数据输入用户,他们在给定的表中输入数据。可能存在多个用户尝试同时输入数据的情况。这将读取相同的 ID 值,从而生成相同的 act_id 值。

问题2:

在插入表之前,需要显示所有输入的数据,包括插入后获取的act_id键,并且还必须防止重复的act_id键生成。

如何解决这些问题?

最佳答案

除非将记录实际插入数据库,否则您无法可靠地预测记录将具有的 ID 值。

最好的方法是将空(或完整的,附加某种状态的)行实际插入数据库中,并在页面中显示它们的 ID。然后您可以将这些行更新为“接受”。

任何其他方法都会给您带来麻烦,因为只有实际插入的行具有可靠的 ID 值。

关于php - 如何使用插入数据的 ID 创建数据摘要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27018545/

相关文章:

MySQL DateTime 连接两个大表

mysql - 查找最新记录 : left outer join vs. 降序排序

javascript - 避免在手机中加载图像

php - Mootools ajax 请求

php - 在面向对象编程中,哪个对象应该维护多对多关系? (如果有的话)

mysql - 使用 Count 查找出现的次数

php - 循环矩阵值

mysql - 获取MySQL中小数范围的频率分布

php - 获取自定义格式的json数据

javascript - 从动态元素列表中获取选择器事件索引