mysql - MARIADB:根据另一个表中的数据插入和更新表
问题描述
/* 这是我用来合并的代码,但我收到错误并且无法更新错误:SQL 错误 [1064][42000] 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以获取在第 1 行的“Merge temp2 as t”附近使用的正确语法 */
BEGIN
MERGE temp2 as t
using temp1 as s ON (t.slno = s.slno)
-- Insert values when data no present
WHEN NOT MATCHED THEN INSERT VALUES
(s.slno,s.name,s.address);
-- Update when values present
WHEN MATCHED then UPDATE SET
t.slno = s.slno,
t.name = s.name,
t.address = s.address;
END
解决方案
你可能会使用这个:
INSERT INTO temp2 (slno, name, address) SELECT slno, name, address FROM temp1
ON DUPLICATE KEY UPDATE
slno = VALUES(slno), name = VALUES(name), address = VALUES(address)
推荐阅读
- java - Aspose:使用 USE_DESTINATION_STYLES 的 InsertDocument 不起作用
- java - Selenium 获取传输数据的大小(资源大小)
- excel - 如何将行剪切到另一张纸上,然后在没有循环冻结的情况下删除 + 移动下一行?
- python - 如何使用python修改JSON文件中的多个值
- javascript - 将对象数组映射到新组中
- python - 如何计算 csv 列中的元素数并根据该计数返回另一列中的元素?
- java - 不同线路上的多个系统输入连接在一起。爪哇
- mongodb - 使用批量写入 API 时出现 CodecConfigurationException
- java - java.lang.NoClassDefFoundError: org/apache/xerces/jaxp/DocumentBuilderFactoryImpl
- python - 使用 python 修复损坏的 XML