Skip to content

目前暂不支持表名、列名、函数名等的自动补全。

可以有多条 SQL 语句,每条语句用分号分隔,点击执行按钮时会讯问。

multi-select

此界面可以使用 Tab 选择,Enter 确认,Ctrl+Enter 执行。也可以直接搜索(无需点击搜索框)以过滤,当仅剩一条语句时,会自动选中,Ctrl+Enter 即可执行。

语句

通过语句注释指令,可以设置语句在选择是的名字,和执行意图。格式为@stmt name / isquery[=bool]。输入@stmt会触发自动完成(不能在注释中触发)。

对于复杂的 SQL 语句,分析它的意图是查询还是执行是比较困难的。在 Bluenova 不能分析出来的时候需要用户来决定。也可以使用注释来设置(默认为 true)。

sql
-- @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会触发自动完成(不能在注释中触发)。:

sql
-- @param uid / uint / label=用户ID; default=35; max=56
select * from `user` where id = ${uid};

当该语句被执行时,会弹出表单:

params-ask

更多的参数选项参见Params 说明

TIP

点击重复执行按钮时,也按下 Ctrl,会重新询问参数。

自定义列渲染

对于整数和 Bytes 列可以使用注释指令设定自定义渲染。格式为@colrender colname[,colname ...] / renderkind [/ key=val[; key=val ...] ]

输入@colr会触发自动完成(不能在注释中触发)。

sql
-- @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 formattz默认为计算机的本地时区,其他的值,例如utcasia/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)

sql.custom-colrender