Séquences et colonnes : les nouvelles séquences et colonnes utilisent NOORDER par défaut (en attente)

Attention

Ce changement de comportement est présent dans le bundle 2024_01.

Pour connaître le statut actuel du bundle, reportez-vous à Historique du bundle.

Lorsque vous créez une nouvelle séquence ou une nouvelle colonne auto-incrémentée, vous pouvez spécifier le paramètre ORDER ou NOORDER pour indiquer si la séquence peut ou non générer de nouvelles valeurs par ordre croissant.

  • ORDER spécifie que les valeurs générées pour une séquence ou une colonne auto-incrémentée sont dans l’ordre croissant sont en ordre croissant (ou, si l’intervalle est une valeur négative, en ordre décroissant).

    Par exemple, si une séquence ou une colonne auto-incrémentée comporte START 1 INCREMENT 2, les valeurs générées peuvent être 1, 3, 5, 7, 9, etc.

  • NOORDER précise que l’ordre croissant des valeurs n’est pas garanti.

    Par exemple, si une séquence comporte START 1 INCREMENT 2, les valeurs générées peuvent être 1, 3, 101, 5, 103, etc.

    NOORDER peut améliorer les performances lorsque plusieurs opérations d’insertion doivent être effectuées simultanément (par exemple, lorsque plusieurs clients exécutent plusieurs instructions INSERT).

Si vous ne spécifiez pas ORDER ou NOORDER, une valeur par défaut est utilisée. Cette valeur par défaut est modifiée afin d’améliorer les performances :

Avant la modification:
  • Si vous créez une nouvelle séquence sans spécifier ORDER ou NOORDER, ORDER est utilisé par défaut.

  • Si vous créez une nouvelle colonne de table et que vous spécifiez AUTOINCREMENT sans spécifier ORDER ou NOORDER, ORDER est utilisé par défaut.

Après la modification:
  • Si vous créez une nouvelle séquence sans spécifier ORDER ou NOORDER, NOORDER est utilisé par défaut.

  • Si vous créez une nouvelle colonne de table et que vous spécifiez AUTOINCREMENT sans spécifier ORDER ou NOORDER, NOORDER est utilisé par défaut.

Remarques :

  • Les modifications de ces valeurs par défaut n’affectent pas les séquences et les colonnes auto-incrémentées existantes.

    Les modifications n’affectent que les nouvelles séquences et colonnes créées lorsque le changement de comportement est activé.

  • Les propriétés ORDER et NOORDER n’ont aucun effet sur l’unicité des valeurs générées pour les séquences et les colonnes auto-incrémentées.

Modification de la valeur par défaut de NOORDER à ORDER

Pour rétablir la valeur par défaut ORDER, définissez le paramètre NOORDER_SEQUENCE_AS_DEFAULT sur FALSE pour le compte, l’utilisateur ou la session.

Si vous définissez ce paramètre, la valeur que vous définissez remplace la valeur du bundle de changements de comportement 2024_01. En définissant ce paramètre sur FALSE, ORDER reste la valeur par défaut, même après que le bundle de changements de comportement 2024_01 a été activé de manière générale.

Modifications de la sortie de la fonction GET_DDL

En outre, la sortie de la fonction GET_DDL change pour les colonnes auto-incrémentées pour lesquelles START 1 INCREMENT 1 est défini :

Avant la modification:

La définition de la colonne renvoyée par GET_DDL ne comprend que le mot-clé AUTOINCREMENT (par exemple, column name data type AUTOINCREMENT).

Après la modification:

La définition de la colonne renvoyée par GET_DDL comprend toutes les propriétés, y compris la propriété START, la propriété INCREMENT et la propriété ORDER / NOORDER (par exemple, column name data type AUTOINCREMENT START 1 INCREMENT 1 NOORDER).

Déterminer si une séquence ou une colonne possède la propriété ORDER ou NOORDER.

Enfin, pour déterminer si une séquence possède la propriété ORDER ou NOORDER, vous pouvez utiliser les commandes et les vues suivantes :

  • Pour les séquences, vous pouvez utiliser au choix :

  • Pour les colonnes auto-incrémentées, vous pouvez vérifier l’un ou l’autre des points suivants :

  • Pour les séquences et les colonnes auto-incrémentées, vous pouvez vérifier la propriété ORDER ou NOORDER dans la définition de la séquence ou de la colonne renvoyée par la fonction GET_DDL.

Réf : 1483