11upsert.mql 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. -- ============================================================
  2. -- Upsert 操作测试
  3. -- ============================================================
  4. -- 1. 基本 upsert - 插入新数据(name不存在)
  5. insert into /test/aaa/test_conflict (c_name, c_value, c_count) values ('conflict_upsert_001', 500, 1) on conflict update c_value=c_value
  6. ;
  7. select * from /test/aaa/test_conflict where c_name='conflict_upsert_001'
  8. /**
  9. output()
  10. **/
  11. ;
  12. -- 2. upsert - 更新已存在数据
  13. insert into /test/aaa/test_conflict (c_name, c_value, c_count) values ('conflict_upsert_001', 999, 5) on conflict update c_value=c_value, c_count=c_count
  14. ;
  15. select c_value, c_count from /test/aaa/test_conflict where c_name='conflict_upsert_001'
  16. /**
  17. output()
  18. **/
  19. ;
  20. -- 3. upsert - 累加 c_count
  21. insert into /test/aaa/test_conflict (c_name, c_value, c_count) values ('conflict_002', 200, 5) on conflict update c_count=c_count+c_count
  22. ;
  23. select c_count from /test/aaa/test_conflict where c_name='conflict_002'
  24. /**
  25. output()
  26. **/
  27. ;
  28. -- 4. upsert - 保留某些字段不更新
  29. insert into /test/aaa/test_conflict (c_name, c_value, c_count) values ('conflict_001', 888, 10) on conflict update c_count=c_count+c_count
  30. ;
  31. select c_value, c_count from /test/aaa/test_conflict where c_name='conflict_001'
  32. /**
  33. output()
  34. **/
  35. ;