mysql - MySQL在重复键上合并数据
问题描述
我现在采用仪表板,并创建了两个表用于从前端进行选择;
DATA_SELECTED_HISTORY
DATA_SELECTED_NOW
我的前端页面从中获取数据DATA_SELECTED_NOW
,我的后端算法将新数据放入该数据库。
我想把我的新数据放到DATA_SELECTED_NOW
,当遇到重复键时
要推送到以前的数据。DATA_SELECTED_HISTORY
我想我可以使用交换表解决方案或 insert(select subquery) + insert on duplicate key 解决方案,但我不知道了。
如何在 SQL 中使用此解决方案?
解决方案
您可以在这种情况下使用触发器,在插入 DATA_SELECTED_NOW 之前检查重复,如果重复插入 DATA_SELECTED_HISTORY,请检查以下代码
CREATE TRIGGER TRIGGER_Name
BEFORE INSERT ON DATA_SELECTED_NOW
FOR EACH ROW
BEGIN
IF (EXISTS(SELECT 1 FROM User WHERE key = NEW.Key)) THEN
-- you can replace "key = NEW.Key " with your logic to check
-- inset into DATA_SELECTED_HISTORY
END IF;
END$$
推荐阅读
- arrays - 是否有可能在 VBA Excel 中有一个将数组作为参数(输入)并将自身作为数组输出的函数?
- azure - 有没有办法像使用“Az”模块一样在“AzureAD”powershell 模块中切换身份验证上下文?
- javascript - 如何在 mouseover 和 mouseout 事件上添加过渡
- coq - Setoid 重写要求微不足道的态射?
- python - Create Dropdown With Values From Model in Django Form
- java - Why do i get an infinite loop in my while loop with a nested if statement?
- css - 为什么 android 键盘弹出窗口不断将我的布局内容推向左侧?
- python - 如何在python中格式化角图?
- android - android如何在按钮顶部设置视图而不导致灰色背景
- html - 如何自动将大量文本格式化为 html?