シーケンスと列: 新しいシーケンスと列はデフォルトで NOORDER を使用(保留中)。¶
新しいシーケンスを作成、または新しい自動インクリメント列を作成するときに、 ORDER または NOORDER パラメーターを指定して、シーケンスが新しい値を昇順に生成できるかどうかを指定できます。
ORDER は、シーケンスまたは自動増分列に対して生成される値が、昇順(または、間隔が負の値の場合は降順)であることを指定します。
たとえば、シーケンスまたは自動増分の列に START 1 INCREMENT 2がある場合、生成される値は
1
、3
、5
、7
、9
などです。NOORDER は、値が昇順であることが保証されないことを指定します。
たとえば、シーケンスに START 1 INCREMENT 2がある場合、生成される値は
1
、3
、101
、5
、103
などです。NOORDER は、複数の挿入操作を同時に実行する必要がある場合(例: 複数のクライアントが複数の INSERT ステートメントを実行する場合)に、パフォーマンスを向上させることができます。
ORDER または NOORDER を指定しない場合は、デフォルト値が使用されます。このデフォルト値は、パフォーマンス向上のために変更されています。
- 変更前:
ORDER または NOORDER を指定せずに新しいシーケンスを作成した場合、デフォルトで ORDER が使用されます。
新しいテーブル列を作成し、 ORDER または NOORDER を指定せずに AUTOINCREMENT を指定した場合、デフォルトで ORDER が使用されます。
- 変更後:
ORDER または NOORDER を指定せずに新しいシーケンスを作成した場合、デフォルトで NOORDER が使用されます。
新しいテーブル列を作成し、 ORDER または NOORDER を指定せずに AUTOINCREMENT を指定した場合、デフォルトで NOORDER が使用されます。
次の点に注意してください。
これらのデフォルト値の変更は、既存のシーケンスや既存の自動インクリメント列には影響しません。
この変更は、動作変更が有効になっているときに作成された新しいシーケンスと列にのみ影響します。
ORDER プロパティと NOORDER プロパティは、シーケンスと自動インクリメント列の生成値の一意性には影響しません。
デフォルトの NOORDER から ORDER への変更¶
デフォルトを ORDER に戻すには、アカウント、ユーザー、またはセッションの NOORDER_SEQUENCE_AS_DEFAULT パラメーターを FALSE に設定します。
このパラメーターを設定すると、設定した値が2024_01動作変更バンドルの値を上書きします。このパラメーターを FALSE に設定すると、2024_01動作変更バンドルが 一般で有効 になった後でも、 ORDER がデフォルトとして維持されます。
GET_DDL 関数の出力の変更¶
さらに、 GET_DDL 関数の出力は、 START 1 INCREMENT 1が設定されている自動インクリメントされる列のために変化します。
- 変更前:
GET_DDL が返す列定義には AUTOINCREMENT キーワードのみが含まれます(例えば、
column name data type AUTOINCREMENT
)。- 変更後:
GET_DDL が返す列定義には、 START プロパティ、 INCREMENT プロパティ、 ORDER / NOORDER プロパティ(例えば、
column name data type AUTOINCREMENT START 1 INCREMENT 1 NOORDER
)を含むすべてのプロパティが含まれます。
シーケンスまたは列が ORDER または NOORDER プロパティを持つかどうかの判定¶
最後に、シーケンスが ORDER プロパティか NOORDER プロパティかを判断するには、次のコマンドとビューを使用できます。
シーケンスの場合、次のいずれかを使用できます。
SHOW SEQUENCES コマンド
DESCRIBE SEQUENCE コマンド
自動インクリメントの列については、次のいずれかをチェックすることができます。
SHOW COLUMNS コマンドの出力の
autoincrement
列。COLUMNS ビュー(INFORMATION_SCHEMA 内)の
identity_ordered
列。
シーケンスや自動インクリメントの列の場合、 GET_DDL 関数が返すシーケンスや列の定義の ORDER や NOORDER プロパティをチェックすることができます。
参照: 1483