【问题标题】:insert value from one table into another whilst doing a double insert在执行双重插入时将值从一个表插入另一个表
【发布时间】:2016-04-18 05:50:58
【问题描述】:

不确定这是否可能。我正在使用 multi_query 同时将值插入两个表中。这很好用。其中一个表有一个自动递增列,我需要获取最后一个自动递增的数字并将其插入到第二个表中,如下所示:插入表 1,然后从列 X 中获取最后插入的数字并将其与其他数据一起插入进入表 2。我已经尝试过使用 SELECT LAST 和 INSERT INTO,但到目前为止它只是在做我的头脑。插入语句看起来像这样:

$sql= "INSERT INTO tbleClients (riskClientId, riskFacility, riskAudDate)     VALUES ('$riskclient2', '$facility2', '$riskdate2');";

$sql .="SELECT     LAST(riskId) FROM tbleClients;";$sql .="INSERT INTO tblRiskRegister (riskId)     SELECT riskId FROM tbleClients ;";

$sql .= "INSERT INTO tblRiskRegister     (riskAudDate, riskClientId,       riskSessionId, RiskNewId) VALUES     ('$riskdate2', '$riskclient2', '$sessionid', '$risknewid')";

单独地它们都会产生结果,但我需要它同时发生。我玩弄了把它们都分开做的想法,但认为那不是很有效。任何指针将不胜感激。

【问题讨论】:

标签: php mysql sql-server database


【解决方案1】:
$sql= "INSERT INTO tbleClients (riskClientId, riskFacility, riskAudDate)     VALUES ('$riskclient2', '$facility2', '$riskdate2');";

执行上述查询后,使用 mysqli_insert_id(),它会为您提供最后一个插入 id。

所以下面的查询是没用的。 $sql .="SELECT LAST(riskId) FROM tbleClients;";

$sql .="INSERT INTO tblRiskRegister (riskId)     SELECT riskId FROM tbleClients ;";

您可以在上面的查询中插入 last_insert_id。

无法找到上下查询之间的关系。

$sql .= "INSERT INTO tblRiskRegister     (riskAudDate, riskClientId,       riskSessionId, RiskNewId) VALUES     ('$riskdate2', '$riskclient2', '$sessionid', '$risknewid')";

【讨论】:

  • 这就是我最终要做的。谢谢。
猜你喜欢
  • 2014-07-29
  • 2021-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-22
  • 1970-01-01
  • 2017-08-01
相关资源
最近更新 更多