mysql 在我插入A表的新数据时,同时插入B表的数据,如果B表有相同字段的数据,则更新B表中的数据 5

我写个触发器createtriggerupdateTotalafterinserton_meterhouryieldforeachrowselectif((selectH... 我写个触发器
create trigger updateTotal after insert on _meterhouryield for each row
select

if((select H00 from _totalhouryield where recordDate = 'new.recordDate') = null ,
(insert into _totalhouryield(recordDate, H00_Start, H00, H00_End) values('new.recordDate', new.H00_Start, new.H00, new.H00_End),
(update _totalhouryield SET H00_Start = H00_Start + new.H00_Start, H00 = H00 + new.H00, H00_End = H00_End + new.H00_End WHERE recordDate = 'new.recordDate'));

这个触发器无法创建
错误提示
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'into _totalhouryield(recordDate, H00_Start, H00, H00_End) values('new.recordDate' at line 3
这个是表结构
_meterHourYield表
| id | int(2)
| H00_Start | int(4)
| H00 | int(4)
| H00_End | int(4)
| recordDate | date
| name | varchar(1)

_totalHourYield表
| id | int(2)
| recordDate | date
| H00_Start | int(4)
| H00 | int(4)
| H00_End | int(4)
展开
 我来答
tracy305
2014-12-29 · TA获得超过6299个赞
知道小有建树答主
回答量:914
采纳率:0%
帮助的人:625万
展开全部
你可以在插入B表时用 INSERT ... ON DUPLICATE KEY UPDATE 语句。
如果数据重复 就会执行后面的update

例:
INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;

上面语句 如果a是唯一索引且表里已经有a=1的记录 则上面语句等同于下面:

UPDATE table SET c=c+1 WHERE a=1;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式