tidb_enable_noop_functions 从 v4.0 版本开始引入
- 作用域:SESSION | GLOBAL
- 默认值:
OFF - 默认情况下,用户尝试将某些语法用于尚未实现的功能时,TiDB 会报错。若将该变量值设为
ON,TiDB 则自动忽略此类功能不可用的情况,即不会报错。若用户无法更改 SQL 代码,可考虑将变量值设为ON。 - 启用
noop函数可以控制以下行为:-
get_lock和release_lock函数 -
LOCK IN SHARE MODE语法 -
SQL_CALC_FOUND_ROWS语法 -
CREATE TEMPORARY TABLE语法 -
DROP TEMPORARY TABLE语法 -
START TRANSACTION READ ONLY和SET TRANSACTION READ ONLY语法 -
tx_read_only、transaction_read_only、offline_mode、super_read_only以及read_only系统变量
-
警告
该变量只有在默认值 OFF 时,才算是安全的。因为设置 tidb_enable_noop_functions=1 后,TiDB 会自动忽略某些语法而不报错,这可能会导致应用程序出现异常行为。例如,允许使用语法 START TRANSACTION READ ONLY 时,事务仍会处于读写模式。