MySQL 8.4 Release Notes
30.4.5.5 The format_statement() 函数
给定一个字符串(通常表示SQL语句),将其截断到由statement_truncate_len
配置选项指定的长度,并返回结果。如果字符串的长度小于statement_truncate_len
,则不进行截断。否则,字符串的中间部分将被替换为省略号(...
)。
这个函数对性能_schema 表中的可能很长的语句进行格式化,以便将其限制到固定的最大长度。
-
statement LONGTEXT
: 需要格式化的语句。
format_statement()
操作可以使用以下配置选项或相应的用户定义变量(见Section 30.4.2.1, “The sys_config 表”):
-
statement_truncate_len
,@sys.statement_truncate_len
语句返回的最大长度。超过这个长度的语句将被截断到这个长度。默认值为64。
一个LONGTEXT
值。
默认情况下,format_statement()
将语句截断到最多64个字符。将@sys.statement_truncate_len
更改为当前会话的截断长度:
mysql> SET @stmt = 'SELECT variable, value, set_time, set_by FROM sys_config';
mysql> SELECT sys.format_statement(@stmt);
+----------------------------------------------------------+
| sys.format_statement(@stmt) |
+----------------------------------------------------------+
| SELECT variable, value, set_time, set_by FROM sys_config |
+----------------------------------------------------------+
mysql> SET @sys.statement_truncate_len = 32;
mysql> SELECT sys.format_statement(@stmt);
+-----------------------------------+
| sys.format_statement(@stmt) |
+-----------------------------------+
| SELECT variabl ... ROM sys_config |
+-----------------------------------+