説明
この変数は、V2.2.77バージョンから導入されました。
機能の概要
sql_auto_is_nullは、ODBCなど一部の特殊なドライバーで使用され、最後に挿入された行の自動インクリメント列の値を取得するかどうかを制御します。
権限要件
変数の確認
グローバルレベル
sysテナントとすべてのユーザーテナントはSHOW VARIABLESステートメント、またはSYS.TENANT_VIRTUAL_GLOBAL_VARIABLEビュー(Oracleモード)およびinformation_schema.GLOBAL_VARIABLESビュー(MySQLモード)を使用してグローバルシステム変数の値を確認できます。セッションレベル
sysテナントとすべてのユーザーテナントはSHOW VARIABLESステートメント、またはSYS.TENANT_VIRTUAL_SESSION_VARIABLEビュー(Oracleモード)およびinformation_schema.SESSION_VARIABLESビュー(MySQLモード)を使用してセッションシステム変数の値を確認できます。
変数の変更
グローバル有効
sysテナントはグローバルシステム変数の値を直接変更できます。MySQLユーザーテナントは
SUPERまたはALTER SYSTEM権限を持っている必要がありますグローバルシステム変数の値を変更するには。Oracleユーザーテナントは
ALTER SYSTEM権限を持っている必要がありますグローバルシステム変数の値を変更するには。
セッション有効
sysテナントとすべてのユーザーテナントは、自身のテナントのセッションシステム変数の値を直接変更できます。
プロパティの説明
| プロパティ | 説明 |
|---|---|
| パラメータタイプ | Bool |
| デフォルト値 | OFF |
| 値の範囲 | |
| 適用範囲 |
|
| 変更は可能か | はい。SET ステートメントを使用して変更できます。 |
使用方法
テーブルt1が存在すると仮定します。その作成ステートメントは以下のとおりです:
obclient> CREATE TABLE t1 (auto_inc_column auto_increment, j int);
sql_auto_is_nullの値がONの場合、次の2つのステートメントは同等です:
obclient> SELECT * FROM t1 WHERE auto_inc_column is null;
obclient> SELECT * FROM t1 WHERE auto_inc_column = last_insert_id();
設定例
IS NULL条件を使用した直接クエリを許可し、最後に挿入された行の自動インクリメント列の値を取得します。
セッション有効
obclient> SET sql_auto_is_null = on;グローバル有効
obclient> SET GLOBAL sql_auto_is_null = on;