Vues dans Informix
La création de vues peut améliorer les délais de réponse aux requêtes en restreignant le nombre de tables et de colonnes lors de la recherche. Vous pouvez créer des vues qui apparaissent sur les applications clientes sous forme de classes d'entités ou de tables non spatiales. Une vue peut référencer une seule table ou classe d'entités ; vous pouvez également créer des vues pour rassembler les données de plusieurs tables.
Tout utilisateur doté des autorisations requises peut créer une vue à l'aide de SQL ou la commande sdetable d'ArcSDE. En outre, les vues peuvent servir à modifier les données si des conditions précises sont remplies. Pour en savoir plus sur les privilèges nécessaires pour créer ou modifier des vues, consultez le centre d'information IBM Informix Dynamic Server approprié à votre version.
Dans les bases de données Informix, les définitions de vue sont stockées dans la table du catalogue sysviews.
La table du catalogue système sysviews stocke des informations sur les vues
Lorsque vous créez des vues dans une base de données Informix à l'aide de SQL ou de la commande sdetable, ces vues sont définies dans la table du catalogue système sysviews. Par conséquent, vous pouvez interroger la table du catalogue système sysviews pour connaître la manière dont chaque vue est définie dans la base de données.
La table de catalogue du système sysviews est composée des colonnes suivantes :
Nom |
Type |
Description |
---|---|---|
tabid |
entier |
Identifiant de la vue |
seqno |
smallint |
Numéro de ligne de l'instruction SELECT qui a créé la vue |
viewtext |
char(64) |
Instruction utilisée pour créer la vue |
Vous pouvez interroger d'abord la table de catalogue du système systables pour connaître l'ID tabid de la vue que vous souhaitez. La table de catalogue du système systables stocke un enregistrement pour chaque objet de base de données, mais vous pouvez l'interroger uniquement en cas de renvoi de vues, comme illustré dans l'exemple suivant :
SELECT *
FROM informix.systables
WHERE tabtype = 'V';
Une fois la vue dont vous souhaitez connaître la définition trouvée, interrogez la table sysviews.
SELECT *
FROM informix.sysviews
WHERE tabid = <view_id>;