Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果寄存器存在则更新,否则插入。MYSQL_Mysql - Fatal编程技术网

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

如果寄存器存在则更新,否则插入。MYSQL,mysql,Mysql,假设在MySQL数据库中有下表 表:债务 ID | Customer | Amount --------------------- 1 | Peter | $ 80 2 | John | $120 我想做的是为一个给定的客户将一笔新的金额加在已经未决的金额上。到目前为止,我一直在做的是选择以检查表中是否存在客户。如果是的话,我用上一个值加上新值的和来更新寄存器。如果寄存器不存在,则继续插入 正如您所看到的,我使用了两个操作,选择和更新,或者选择和插入 我的问题是,如果有一种方

假设在MySQL数据库中有下表

表:债务

ID | Customer | Amount
---------------------
1  | Peter    | $ 80
2  | John     | $120
我想做的是为一个给定的客户将一笔新的金额加在已经未决的金额上。到目前为止,我一直在做的是选择以检查表中是否存在客户。如果是的话,我用上一个值加上新值的和来更新寄存器。如果寄存器不存在,则继续插入

正如您所看到的,我使用了两个操作,选择和更新,或者选择和插入


我的问题是,如果有一种方法只需一次操作就可以做到这一点,MySql是否允许更新现有记录或插入一条记录,请在重复密钥更新时使用insert INTO table id、name、amount VALUES 1、'Peter',80

但我不知道是否可以使用现有值对新值进行求和并插入结果

也许你需要触发器


设置金额=金额+??在on duplicate update子句中

请展示一个更健壮的数据示例,表在运行预期查询之前的样子,以及之后的样子。