首批通过分布式安全可靠测评,为关键业务系统打造
sql_auto_is_null
更新时间:2026-04-07 14:41:56
说明
该变量从 V2.2.77 版本开始引入。
功能描述
sql_auto_is_null 会被一些特殊的驱动程序,例如 ODBC 使用,用于控制是否获取最后插入行的自增列值。
权限要求
查询变量
Global 级别
sys租户和所有用户租户均可以使用SHOW VARIABLES语句或视图SYS.TENANT_VIRTUAL_GLOBAL_VARIABLE(Oracle 模式)及视图information_schema.GLOBAL_VARIABLES(MySQL 模式)查看 Global 系统变量的值。Session 级别
sys租户和所有用户租户均可以使用SHOW VARIABLES语句或视图SYS.TENANT_VIRTUAL_SESSION_VARIABLE(Oracle 模式)及视图information_schema.SESSION_VARIABLES(MySQL 模式)查看 Session 系统变量的值。
修改变量
Global 生效
sys租户可以直接修改 Global 系统变量的值。MySQL 用户租户需要拥有
SUPER或ALTER SYSTEM权限才能修改 Global 系统变量的值。Oracle 用户租户需要拥有
ALTER SYSTEM权限才能修改 Global 系统变量的值。
Session 生效
sys租户和所有用户租户均可以直接修改本租户的 Session 系统变量的值。
属性说明
| 属性 | 描述 |
|---|---|
| 参数类型 | Bool |
| 默认值 | OFF |
| 取值范围 |
|
| 生效范围 |
|
| 是否可修改 | 是,支持通过 SET 语句修改。 |
使用说明
假设存在表 t1,其建表语句如下:
obclient> CREATE TABLE t1 (auto_inc_column auto_increment, j int);
当 sql_auto_is_null 的值为 ON 时,下面两条语句等价:
obclient> SELECT * FROM t1 WHERE auto_inc_column is null;
obclient> SELECT * FROM t1 WHERE auto_inc_column = last_insert_id();
配置示例
设置允许通过 IS NULL 条件直接查询来获取最后插入行的自增列值。
Session 生效
obclient> SET sql_auto_is_null = on;Global 生效
obclient> SET GLOBAL sql_auto_is_null = on;