2014-02-11 40 views
0

我想写一个mysql语句,插入到表中而不必使用主键。没有使用重复键的Upsert MYSQL

我知道重复的键盘命令,但我不能在这里使用它,因为我正在检查两个不是主键的列的唯一性。我知道只做这两个主键会更好,但我不能这样做,因为这是给出的模式。

的模式是这样的:

tbl_order_detail

  • key_order_detail
  • key_order
  • key_product
  • some_other_keys

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

有什么建议吗?

回答

1

ON DUPLICATE KEY UPDATE不仅适用于主键,而且适用于任何独特的约束。

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

+0

好的。阅读是技术。我完全错过了你可以做到这一点。谢谢! – Akolopez