我在 mariadb 中有下表:
-id = 自动递增的键 -价格 -数量 -姓名 -order_id
order_id 可以在表中出现两次,但名称和 order_id 的组合应该是唯一的。我现在有了 name 和 order_id 的组合。
我想要做的是,如果 name 和 order_id 的组合不在表中,则添加一条记录。 如果它在,那么我想更改/获取金额值。
有一个很好的查询来完成这个任务吗?
问候
最佳答案
我喜欢为此使用重复 key 更新
。您需要首先在 name
和 order_id
上创建唯一索引:
create unique index ix_table_orderid_name on table(order_id, name);
然后插入
看起来像:
insert into table(price, amount, name, order_id)
values (@price, @amount, @name, @order_id)
on duplicate key update amount = values(amount), price = values(price);
这会将表中的值替换为新值。您也可以增加它们。您的问题不清楚具体的操作。
关于mysql - 如果 id 未知则添加记录,否则更新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28518748/