目前暂不支持表名、列名、函数名等的自动补全。
可以有多条 SQL 语句,每条语句用分号分隔,点击执行按钮时会讯问。
此界面可以使用 Tab 选择,Enter 确认,Ctrl+Enter 执行。也可以直接搜索(无需点击搜索框)以过滤,当仅剩一条语句时,会自动选中,Ctrl+Enter 即可执行。
语句
通过语句注释指令,可以设置语句在选择是的名字,和执行意图。格式为@stmt name / isquery[=bool]
。输入@stmt
会触发自动完成(不能在注释中触发)。
对于复杂的 SQL 语句,分析它的意图是查询还是执行是比较困难的。在 Bluenova 不能分析出来的时候需要用户来决定。也可以使用注释来设置(默认为 true)。
-- @stmt ctequery / isquery
with
allusers as (select * from users)
alladmins as (select * from admins)
select * from allusers
where
allusers.id = alladmins.uid
;
参数
可以在 SQL 中定义参数,格式为@param name / type [/ key=val[; key=val ...] ]
。输入@param
会触发自动完成(不能在注释中触发)。:
-- @param uid / uint / label=用户ID; default=35; max=56
select * from `user` where id = ${uid};
当该语句被执行时,会弹出表单:
更多的参数选项参见Params 说明
TIP
点击重复执行按钮时,也按下 Ctrl,会重新询问参数。
自定义列渲染
对于整数和 Bytes 列可以使用注释指令设定自定义渲染。格式为@colrender colname[,colname ...] / renderkind [/ key=val[; key=val ...] ]
输入@colr
会触发自动完成(不能在注释中触发)。
-- @colrender created_at, last_login_at / datatime / unit=mills
select * from users;
对于整数列,支持 3 种渲染变体:
datetime: 可选的参数有
unit(auto/sec/mills/nano)
,layout(string)
和tz(string)
。layout
格式参见day.js format。tz
默认为计算机的本地时区,其他的值,例如utc
,asia/shanghai
等,请参见mdn。bool: 0 为 false,其他都为 true。
enum: 选项中值可以被安全的转换成 Int 的都算作 enum 的一项。 例如:
a=1; b=2; c=3
。
对于 Bytes 列,支持 3 种渲染变体:
uuid:长度只能是 16。
boolean:长度只能为 1。0 为 false,其他都为 true。
string:可选的参数为
encoding(string)
。