【发布时间】:2013-11-22 13:42:11
【问题描述】:
下面的 php 代码将记录从一个(mysql)数据库写入另一个。在此复制操作之前,目标数据库的 AGREEMENTS 表(具有常量名称 CORP_DBNAME)为空。两个表 AGREEMENTS 的“id”字段都是 AUTO_INCREMENT 类型。
复制操作有效,但不是 100% 正确:目标数据库表的 id 字段应为 1(我复制除 id 之外的所有字段的原因),但为 11 - id 的自动增量(10 ) 在原始数据库 (SUPPL_DBNAME) 中。例如,复制操作应始终将记录添加到具有适当递增 id 的目标数据库中。为什么会发生这种情况以及如何解决?
简化的php代码:
$id = 10;
$corpdb = new CORPDatabase(CORP_DBNAME);
$suppldb = new CORPDatabase(SUPPL_DBNAME);
$sql = "INSERT INTO ".CORP_DBNAME.".AGREEMENTS ( otherpartyid, agreementdocumentpath, approvalcorporation, approvalsupplier, created ) "
. "SELECT otherpartyid, agreementdocumentpath, approvalcorporation, approvalsupplier, created FROM ".SUPPL_DBNAME.".AGREEMENTS "
. "WHERE ".SUPPL_DBNAME.".AGREEMENTS.id=".$id." ";
$corpdb->UpdateDBRecord($sql);
【问题讨论】: