ON DUPLICATE KEY创建新记录

时间:2015-06-18 07:43:10

标签: php mysql

我从亚马逊API获得了大量产品信息。我正在使用ASIN作为我的主键。运行INSERT时,我想检查它是否存在,如果存在,请更新一些值并继续。我不想要重复记录。

以下是代码段:

$stmt = $this->dbh->prepare("
        INSERT INTO products(ASIN, Many, Other, Values)
        VALUES(:ASIN, :Many, :Other, :Values)
        ON DUPLICATE KEY UPDATE Other= :Other
        ")

$stmt->execute(array(
                        ':ASIN'     =>  $ASIN,
                        ':Many'     =>  $many,
                        ':Other'    =>  $other,
                        ':Values'   =>  $values
               ));

这只会将重复记录添加到我的数据库中。如何检查ASIN以及是否重复,请使用任何新信息进行更新?

1 个答案:

答案 0 :(得分:1)

您需要将数据库中的密钥设置为唯一密钥或主密钥,否则引擎将不知道它是否是重复密钥。