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 :
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);
Cette contrainte peut être modifiée ou supprimée sans affecter les vues ni déclencher. réécritures de données inutiles.
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!