Insertion d'une valeur dans une colonne d'identifiant global ou GUID dans Informix avec SQL

Les types de données d'identifiant global (GlobalID) et GUID contiennent des chaînes de registre constituées de 36 caractères placés entre des accolades. Ces chaînes identifient de manière unique une entité ou une ligne de table dans une géodatabase et entre plusieurs géodatabases. Les identifiants globaux permettent de conserver l'unicité des enregistrements dans des réplicas monodirectionnels et bidirectionnels de géodatabase et dans les données non versionnées utilisées dans les cartes hors connexion. Les GUID peuvent être ajoutés à n'importe quelle table.

Si la table que vous souhaitez mettre à jour participe à la réplication ou à l'utilisation de cartes hors connexion ou si elle contient une colonne GUID, vous devez insérer une valeur unique dans la colonne d'identifiant global ou GUID lorsque vous insérez un nouvel enregistrement dans la table à l'aide de SQL. Pour cela, utilisez la fonction sde.retrieve_guid().

Lorsque vous mettez à jour une table non versionnée qui n'est pas activée pour l'archivage, vous pouvez insérer l'ID directement dans la table à l'aide de la fonctions sde.retrieve_guid(). Lorsque vous mettez à jour une table non versionnée qui est activée pour l'archivage, insérez l'ID dans la vue d'archive de la table. Lorsque vous mettez à jour une table versionnée, faites appel à la fonction pour insérer une valeur dans la vue versionnée de la table.

Pour utiliser cette fonction dans Informix, vous devez définir le paramètre suivant dans le fichier ONCONFIG Informix :

VPCLASS jvp,num=1

Après avoir modifié le fichier ONCONFIG, vous devez redémarrer Informix pour que les modifications soient prises en compte.

Etapes :
  1. Connectez-vous à la base de données à partir d'une invite SQL en tant qu'un utilisateur autorisé à modifier la table.

    Si vous effectuez une mise à jour via une vue versionnée ou d'archive, l'utilisateur doit également détenir des privilèges de modification de la vue.

  2. Lorsque vous insérez un enregistrement, utilisez la fonction retrieve_guid() pour insérer la prochaine valeur d'identifiant global.
    INSERT INTO jason.assets (asset_id, globalid) 
     VALUES (57, sde.retrieve_guid());
    
  3. Lorsque vous avez terminé vos modifications, validez-les dans la base de données.
5/10/2014