数据库
首页 > 数据库> > 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,into,replace,VALUE2,KEY2,TYPE,true,INTO
来源: https://www.cnblogs.com/acm-bingzi/p/oscar_replace_into.html