17beforerun.mql 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. -- ============================================================
  2. -- beforerun 函数链:set / add / mod / case
  3. -- ============================================================
  4. -- 1. beforerun set 设置变量
  5. /**
  6. beforerun(set(myvar, 'hello_mql'))
  7. **/
  8. ;
  9. -- 使用变量插入
  10. insert into /test/aaa/test_ext (e_name, e_value, e_text) values ('beforerun_set', 1, {%s,myvar})
  11. /**
  12. onerror(continue,'JsonKeyValue')
  13. **/
  14. ;
  15. select e_name, e_text from /test/aaa/test_ext where e_name='beforerun_set'
  16. /**
  17. output()
  18. onerror(continue)
  19. **/
  20. ;
  21. -- 2. beforerun add 累加
  22. /**
  23. beforerun(set(counter, 10), add(counter, 5))
  24. **/
  25. ;
  26. insert into /test/aaa/test_ext (e_name, e_value, e_text) values (concat('beforerun_add_', {%d,counter}), {%d,counter}, 'add test')
  27. /**
  28. onerror(continue)
  29. **/
  30. ;
  31. select e_name, e_value from /test/aaa/test_ext where e_name=^'beforerun_add'
  32. /**
  33. output()
  34. **/
  35. ;
  36. -- 3. beforerun add 带单位(时间累加)
  37. /**
  38. beforerun(set(ct, '2024-01-01 00:00:00'), add(ct, 30, second))
  39. **/
  40. ;
  41. insert into /test/aaa/test_ext (e_name, e_text) values ('beforerun_time', concat('ct=', {%t,ct}))
  42. /**
  43. onerror(continue)
  44. **/
  45. ;
  46. -- 4. beforerun mod 取模
  47. /**
  48. beforerun(set(mod_val, 17), mod(mod_val, 5))
  49. **/
  50. ;
  51. insert into /test/aaa/test_ext (e_name, e_value, e_text) values (concat('beforerun_mod_', {%d,mod_val}), {%d,mod_val}, 'mod test 17%5')
  52. /**
  53. onerror(continue)
  54. **/
  55. ;
  56. select e_name, e_value from /test/aaa/test_ext where e_name=^'beforerun_mod'
  57. /**
  58. output()
  59. **/
  60. ;
  61. -- 5. beforerun case 条件判断
  62. /**
  63. beforerun(set(case_val, 'yes'), case(case_val,'yes'))
  64. **/
  65. ;
  66. insert into /test/aaa/test_ext (e_name, e_text) values ('beforerun_case_yes', 'case matched yes')
  67. /**
  68. sleep(2s)
  69. **/
  70. ;
  71. select e_name from /test/aaa/test_ext where e_name='beforerun_case_yes'
  72. /**
  73. output()
  74. count(1)
  75. **/
  76. ;
  77. -- 6. beforerun case 不匹配
  78. /**
  79. beforerun(set(case_val, 'no'), case(case_val,'yes'))
  80. **/
  81. ;
  82. -- 当 case 不匹配时,该语句会被跳过
  83. insert into /test/aaa/test_ext (e_name, e_text) values ('beforerun_case_no', 'case not matched - should not execute')
  84. ;
  85. -- 验证 case 不匹配时语句被跳过
  86. select e_name from /test/aaa/test_ext where e_name='beforerun_case_no'
  87. /**
  88. output()
  89. onerror(continue)
  90. **/
  91. ;