MySQL 合并重复键上的数据

MySQL merge data on duplicate key

我现在正在采用仪表板,我从前端为 selecting 创建了两个 table;

DATA_SELECTED_HISTORY
DATA_SELECTED_NOW

我的前端页面从 DATA_SELECTED_NOW 获取数据,我的后端算法将新数据放入该数据库。

我想把我的新数据放到DATA_SELECTED_NOW,
和以前的数据在遇到重复键时被推送到DATA_SELECTED_HISTORY

我想我可以使用交换 table 解决方案或 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$$