$sql = "INSERT IGNORE INTO product (reference, description, price, created_at, updated_at)
VALUES ('{$sku}', '{$description}', '{$price}', '{$created_at}', '{$updated_at}')";
由于id
列递增, ..继续创建新行,如何使SKU
唯一,以便检查SKU
值是否存在,然后UPDATE
代替INSERT
{{1}}。
答案 0 :(得分:3)
在您不希望允许重复的列上添加唯一键:
ALTER TABLE product ADD UNIQUE KEY (reference);
完成此操作后,您可以使用ON DUPLICATE KEY UPDATE
子句更新行,而不是忽略INSERT
。
INSERT INTO product (reference, description, price, created_at, updated_at)
VALUES ('{$sku}', '{$description}', '{$price}', '{$created_at}', '{$updated_at}')
ON DUPLICATE KEY UPDATE
description = VALUES(description),
price = VALUES(price),
created_at = VALUES(created_at),
updated_at = VALUES(updated_at)
在VALUES
子句中使用ON DUPLICATE KEY
获取在新行的INSERT
期间分配的值。