page_sql
一条 sys.page_sql 记录是三段 SQL,在同一个事务里按顺序执行:
pre_sqlmain_sqlpost_sql
列名是 main_sql。软删除看 del_flag。每次修改留在 sys.page_sql_hist。call_count 和 fail_count 是调用统计。
页面 JSON 里通过 sql_id 引用它。参数和 sql_id 写在同一个对象里,由 /sql/run 替换进 SQL 文本。
模板语法
| 写法 | 替换成 |
|---|---|
${name} | 参数原样进入 SQL。数字不加引号 |
%{name} | SQL 字符串字面量,单引号会转义 |
^{name} | 外包一层单引号,内容不转义 |
@{name}[模板行] | 把数组或对象数组按模板行展开 |
!{SpEL} | 在 pre_sql 执行之后求值,数据来自 _pre_sql_result_list |
$[可选段] | 由参数 _optional_N 决定这段留不留 |
保留参数
| 参数 | 含义 |
|---|---|
_user_id | 服务端写入当前用户。请求体里传同名参数不会覆盖它 |
_return_obj | 返回第一行对象 |
_return_val | 返回第一行的第一个字段 |
_optional_N | 控制第 N 段 $[...] 是否保留 |
INSERT、UPDATE 里,简单占位如果没有对应参数,会被拿掉。所以隐藏列不传值时,保存语句仍然能执行。
改完 SQL 文本后,已经打开的页面要重新打开,会话里的白名单和调用方才会使用新内容。见 新建一个页面。