如果寄存器存在则更新,否则插入。 MYSQL

时间:2017-09-12 01:59:34

标签: mysql

假设我在MySQL DB中有以下表格

表:债务

ID | Customer | Amount
---------------------
1  | Peter    | $ 80
2  | John     | $120

我想要做的是为给定客户的已经挂起的金额加上新的金额。到目前为止我一直在做的是SELECT来检查表中是否存在客户。如果是,那么我UPDATE寄存器,其中包含前一个值加上新值的总和。如果寄存器不存在,我将进入INSERT

正如您所看到的,我正在使用两个操作,SELECTUPDATE,或SELECTINSERT

我的问题是,是否有办法只用一个操作

2 个答案:

答案 0 :(得分:1)

https://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html

设定金额=金额+ ??在重复更新子句中。

答案 1 :(得分:0)

MySql允许更新现有记录或插入一个记录,使用INSERT INTO table (id, name, amount) VALUES (1, 'Peter', 80) ON DUPLICATE KEY UPDATE;

我不知道你是否可以使用现有值与new进行求和并插入结果。

可能你需要触发......