【发布时间】:2017-03-08 20:11:02
【问题描述】:
我正在尝试更新一行并将 shipping_number 设置为 max()+1。原因是该表在另一个名为 id 的列上已经有一个auto_increment。从第一个查询中,我得到max(shipment_number),在下一个查询中,iam 以+1 递增。但是我得到一个错误..
#1093 - 您不能在 FROM 子句中指定目标表 'commercial_sales_custpo_process' 进行更新
任何人请帮我解决这个问题。
$max = "SELECT MAX(shipment_number) FROM commercial_sales_custpo_process WHERE
tender_id='$tender_id' AND id='$id'";
$query1="UPDATE commercial_sales_custpo_process set shipment_number = ($max+1) WHERE
tender_id='$tender_id' AND id='$id'";
mysql_query($query1) or die ("Error in query: $query1");
【问题讨论】:
-
在进入查询之前尝试增加。
$var=$max+1;并分配此变量$var以更新查询。也推荐以mysqliphp.net/manual/en/book.mysqli.php开头 -
为什么不使用 AUTO_INCREMENT
-
如果已经有 auto_increment 为什么还需要这个?它可以在选择数据时计算,而无需处理2个会话同时运行时出现的问题。