我有一张包含25,000个条目并且在不断增长的表格。在代码中,有这一行
$result = sqlQuery("SELECT MAX(pid)+1 AS pid FROM patient_data");
$newpid = 1;
if ($result['pid'] > 1) $newpid = $result['pid'];
此行从数据库返回错误,该错误表示10000处的重复记录。
这行代码应该是检索pid列的最后一个条目,然后下一行代码添加一行来创建表中的下一个条目。
根据我的研究,MAX()是一个求和工具,而不是用于检索输入表中的最后一个值的工具。 https://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html#function_max
寻找关于如何正确使用它的一些说明。我似乎无法找到明确的答案。希望一些经验丰富的开发人员可以帮助我指导正确的方向。
答案 0 :(得分:0)
由于表已经自动增加了ID列,因此MySQL中每个表只允许其中一个。我不得不采用不同的方法。
决定以这种方式获得最后一条记录。
$result = sqlQuery("SELECT id AS pid FROM patient_data ORDER BY id DESC LIMIT 1");
$newpid = 1;
if ($result['pid'] > 1) $newpid = $result['pid'] + 1; //Changed by Sherwin
setpid($newpid);