不使用重复键MYSQL进行Upsert

时间:2014-02-11 03:17:51

标签: mysql sql

我正在尝试编写一个mysql语句,该语句无需使用主键即可插入表中。

我知道on duplicate key命令,但我不能在这里使用它,因为我正在检查两列不是主键的唯一性。我知道最好只生成这两个主键,但我不能,因为这是给出的模式。

架构如下所示:

  

tbl_order_detail

  • key_order_detail
  • key_order
  • key_product
  • some_other_keys

如果key_order,key_product对是唯一的,那么我会进行常规插入。 如果它们不是唯一的,那么我更新该行。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

ON DUPLICATE KEY UPDATE不仅适用于主键,还适用于任何唯一约束。

因此,只需为(key_order, key_product)列创建复合唯一索引并使用它。