Maison > base de données > tutoriel mysql > Comment modifier les colonnes dans les vues PostgreSQL sans les supprimer ni les recréer ?

Comment modifier les colonnes dans les vues PostgreSQL sans les supprimer ni les recréer ?

Barbara Streisand
Libérer: 2025-01-03 08:41:39
original
1027 Les gens l'ont consulté

How to Modify Columns in PostgreSQL Views Without Dropping and Recreating Them?

Assouplir l'emprise de PostgreSQL sur les vues

Question :

Comment puis-je contourner le contrôle strict de PostgreSQL sur les modifications de colonnes dans les vues ? Je préférerais modifier les colonnes sans avoir à supprimer et recréer les vues à chaque fois.

Solution :

Il existe deux approches pour y parvenir :

Solution permanente :

Pour éliminer complètement le problème, envisagez d'utiliser des types de données variables texte ou varchar/caractère sans spécifier de longueur. Cela permettra des modifications transparentes sans affecter les vues dépendantes.

Vous pouvez également implémenter une contrainte CHECK pour imposer une longueur maximale :

ALTER TABLE monkey ADD CONSTRAINT monkey_name_len CHECK (length(name) < 101);
Copier après la connexion

Cette contrainte peut être modifiée ou supprimée sans affecter les vues ni déclencher. réécritures de données inutiles.

Explication détaillée :

Les vues PostgreSQL ne sont pas simplement alias de sous-requête. Ils sont implémentés sous forme de tables avec des règles spécialisées, offrant la flexibilité de modifier les attributs auxiliaires à l'aide de ALTER TABLE. Cependant, la modification des types de données sous-jacents nécessite la suppression et la recréation de la vue. Cela préserve les données mais peut supprimer les attributs ajoutés.

Pour modifier la requête sous-jacente dans une vue, utilisez CREATE OR REPLACE VIEW. Toutefois, cela n'est pas possible pour les modifications de type de données. Par conséquent, il est nécessaire de supprimer et de recréer la vue pour prendre en compte de telles modifications.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal