C/C++教程

oscar 数据库里如何执行 replace into

本文主要是介绍oscar 数据库里如何执行 replace into,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

  正常情况下,mysql 的 replace into 功能,也可以通过insert ignore 或者 if not exists 等关键词替代实现
  然而,在oscar 数据库里,replace 不能使用,而且 ignore 或 if 等关键词 它也不认

  最终研究发现,得用 MERGE INTO

 

  比如想要实现这么一个功能

REPLACE INTO TEST.TABLE_A(KEY2, VALUE2, TYPE) VALUES ('xxx_flag', 'true', 'default');

 

  在 oscar 里就应该这么写: 如果能查询到相同的数据,就更新一下一个无关紧要的字段,否则就执行插入操作

MERGE INTO TEST.TABLE_A T USING (
    SELECT
        'xxx_flag' AS KEY2,
        'true' AS VALUE2,
        'default' AS TYPE
) S ON (S.KEY2 = T.KEY2)
WHEN MATCHED THEN
    UPDATE
SET T.TYPE = S.TYPE
WHEN NOT MATCHED THEN
    INSERT (KEY2, VALUE2, TYPE)
VALUES
    (
        'xxx_flag',
        'true',
        'default'
    );

 

原创文章,欢迎转载,转载请注明出处!

这篇关于oscar 数据库里如何执行 replace into的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!