如果id未知则添加记录否则更新记录

时间:2015-02-14 18:23:45

标签: mysql sql mariadb

我在mariadb中有以下表格:

-id =自动增量的键 -价钱 -量 -名称 -order_id

order_id可以在表格中出现两次,但name和order_id的组合应该是唯一的。我现在有name和order_id的组合。

如果name和order_id的组合不在表中,我想要的是添加记录。 如果它在那时我想改变/获得金额值。

有一个很好的查询来完成这个吗?

此致

1 个答案:

答案 0 :(得分:2)

我喜欢使用on duplicate key update。您需要先在nameorder_id上创建唯一索引:

create unique index ix_table_orderid_name on table(order_id, name);

然后insert看起来像:

insert into table(price, amount, name, order_id)
    values (@price, @amount, @name, @order_id)
    on duplicate key update amount = values(amount), price = values(price);

这将使用新值替换表中的值。你也可以增加它们。你的问题不清楚确切的操作。