当一条记录 在数据库中存在进行更新,否则进行插入的时候
oralce 中可以通过merge
merge into AB_TABLE t1
using (select SHORTPN, HSCODE, LONGNAME, NAMECN from A_TABLE) t2
on (t1.SHORTPN = t2.SHORTPN)
when matched then
update set t1.HSCODE = t2.HSCODE, t1.LONGNAME = t2.LONGNAME, t1.NAMECN = t2.NAMECN
when not matched then
insert (SHORTPN, HSCODE,LONGNAME,SHORTNAME,NAMECN,DECLARE_CRITERION,REMARK,DATEUPDATED) values (t2.SHORTPN, t2.HSCODE, t2.LONGNAME, null, t2.NAMECN, null, null, null);
commit;
那么在mysql中 可以通过 repalce into
replace into
EX_ENERGY_CO_INFO(主键1,主键2,主键3,主键4,VALUE1,VALUE2,VALUE3,VALUE4)
SELECT 'BC0108','LC0208','G','ED0008','1','2','3','4'
PS 由于我这是4个主键。
注意mysql中 会根据主键或者是索引去判断
分享到:
相关推荐
MySQL 中没有类似 Oracle 的 merge 语句,但是可以使用两种方法来实现类似的功能:INSERT INTO … ON DUPLICATE KEY UPDATE 和 REPLACE INTO。前者使用 INSERT 语句向表中插入记录,如果发现主键或唯一键冲突,则...
Written by a MySQL Community Manager for Oracle, MySQL and JSON: A Practical Programming Guide shows how to quickly get started using JSON with MySQL and clearly explains the latest tools and ...
在MySQL中,可以通过INSERT IGNORE、REPLACE INTO以及ON DUPLICATE KEY UPDATE等方法来处理主键冲突。而在Oracle中,则需要使用MERGE语句来实现类似的逻辑。MERGE语句可以根据数据源和目标表之间的匹配情况,决定是...
ALTER TABLE table_name MERGE PARTITIONS p1, p2 INTO PARTITION p_merged; ``` ##### 14.9 拆分分区 将一个分区拆分为两个或多个分区: ```sql ALTER TABLE table_name SPLIT PARTITION p1 AT (TO_DATE('2024-01...
5. **Merge Into操作**:PostgreSQL中没有Oracle的`Merge Into`语句,但可以通过`with`查询,`update returning`和`insert`的组合来实现类似功能。 通过这个实践过程,阿里巴巴数据库团队成功地将Oracle系统迁移到...
5. MERGE INTO语句的改造:在PostgreSQL中,需使用with子句、update returning及insert来实现类似的功能。 通过这些实践,阿里数据库团队成功地将Oracle替换为PostgreSQL,降低了运维成本,提高了系统的自主可控性...