假设我在MySQL DB中有以下表格
表:债务
ID | Customer | Amount
---------------------
1 | Peter | $ 80
2 | John | $120
我想要做的是为给定客户的已经挂起的金额加上新的金额。到目前为止我一直在做的是SELECT
来检查表中是否存在客户。如果是,那么我UPDATE
寄存器,其中包含前一个值加上新值的总和。如果寄存器不存在,我将进入INSERT
。
正如您所看到的,我正在使用两个操作,SELECT
和UPDATE
,或SELECT
和INSERT
。
我的问题是,是否有办法只用一个操作
答案 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进行求和并插入结果。
可能你需要触发......