在进行双重插入时,将值从一个表插入到另一个表中

时间:2016-04-18 05:50:59

标签: php mysql sql-server database

不确定这是否可行。我使用multi_query同时将值插入到两个表中。这很好。其中一个表有一个自动增量列,我需要取最后一个自动递增的数字并将其插入第二个表中,如下所示:插入表1然后从列X中取出最后一个插入的数字并将其与其他数据一起插入我已经玩过使用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')";

单独他们都会产生结果,但我需要它同时发生。我做过玩具的想法是单独完成这些操作,但认为这样做效率不高。任何指针都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

$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')";