Lorsque vous tentez de modifier une colonne utilisée dans une vue PostgreSQL, il est généralement nécessaire de supprimer la vue, de modifier la colonne et recréez la vue. Ce processus peut être fastidieux et prendre beaucoup de temps. Existe-t-il un moyen d'alléger ce fardeau ?
Résolution permanente :
Évitez d'utiliser des types de données variant de caractères avec une longueur définie . Utilisez plutôt le type de données text ou varchar sans spécificateur de longueur. Si nécessaire, imposez une longueur maximale à l’aide d’une contrainte CHECK. Cette approche élimine le besoin de modifier la vue lors de la modification des types de colonnes.
CREATE TABLE monkey (name text NOT NULL); ALTER TABLE monkey ADD CONSTRAINT monkey_name_len CHECK (length(name) < 101);
Les vues PostgreSQL ne sont pas de simples alias de sous-requêtes, mais plutôt des tables spécialisées avec leur propre structure de règles. Par conséquent, lors de la modification des tables sous-jacentes, il est souvent nécessaire de modifier également les vues dépendantes. L'instruction ALTER VIEW peut modifier les propriétés de la vue, mais pas la requête sous-jacente.
Pour modifier la requête, utilisez CREATE OR REPLACE VIEW. Cependant, cette opération n'est pas possible lors de la modification des types de données des colonnes résultantes. Dans de tels cas, l’ancienne vue doit être supprimée et une nouvelle créée. Cette action ne supprime aucune donnée mais peut supprimer tout attribut supplémentaire associé à la vue.
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!