我在mariadb中有以下表格:
-id =自动增量的键 -价钱 -量 -名称 -order_id
order_id可以在表格中出现两次,但name和order_id的组合应该是唯一的。我现在有name和order_id的组合。
如果name和order_id的组合不在表中,我想要的是添加记录。 如果它在那时我想改变/获得金额值。
有一个很好的查询来完成这个吗?
此致
答案 0 :(得分:2)
我喜欢使用on duplicate key update
。您需要先在name
和order_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);
这将使用新值替换表中的值。你也可以增加它们。你的问题不清楚确切的操作。