插入ignore vs duplilcate键

时间:2017-09-18 14:26:06

标签: mysql sql database

我正在尝试编写一个简短的PHP脚本,它将从一个服务器上的表中进行选择并插入/更新到 在不同的服务器上的表。这是为了使我们的工作生产数据库与我们的所有内容保持同步 DB2数据库,以便我们可以在本地预先形成所有查询。

因此,我与两个数据库的连接都是成功的,我在DB2方面的SELECT语句也是成功的。该 唯一的问题我遇到的是我的INSERT / UPDATE程序,我没有收到错误,就像我没有 真的知道我应该怎么做。

我最初的想法是INSERT IGNORE,但我想知道它是否应该是在DUPLICATE KEY ..... UPDATE。

基本上,我前几天抛弃了DB2表并导入到mysql中,现在我只需要不断更新它。两个表 有大约15000条记录,有很多东西可以通过。我只需要查看DB2中的所有内容,如果有的话 一个全新的记录,插入它,或者如果在DB2中更新了手机或电子邮件,我想要更新 它在mysql方面。

记录可以包含与每个客户编号关联的公司编号1-5,这可能与更新有关 重复,但我仍然不确定最好的方法。

关于在这里做我需要的最佳方法的任何提示?

//Query for selecting records from  DB2

$query1 = "select xcompn, xcstno, xbllnm, xcntpc, xcntec from jacmfg.custmstf";
$prep1 = odbc_prepare($DB2Conn, $query1);
$exec1 = odbc_execute($prep1);

//If either query fails
if (!$exec1) {

  die('Could not update.');
}
else {
echo 'success';
}

 //Query for inserting and updating on mysql 


$stmt = mysqli_prepare($mysqlConn, 
    "INSERT ignore into ambition.ambition_customer_data(companyNumber, customerNumber, businessName,
    phone, email )
      VALUES (?, ?, ?, ?, ?)
      ON duplicate key update
      -- unfinished statement
          ") or die(mysqli_error( $conn2));

0 个答案:

没有答案