欢迎访问我的个人网站==》 jiashubing.cn

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'
    );

 

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

posted @ 2022-06-24 15:54  贾树丙  阅读(119)  评论(0编辑  收藏  举报