Comment réparer une vue SQL cassée

J'utilise le CMS open source pimcore (http://www.pimcore.org), qui fonctionne sur un backend MySQL.

Il utilise des vues assez compliquées pour représenter des objets et l'une d'entre elles est cassée à un moment donné lorsqu'une colonne d'une autre table référencée par la vue a été renommée. Chaque fois que j'essaie d'interagir avec la table via des commandes SQL, je reçois l'erreur:

Voir ' barriste_website.object_6 ' références table(s) invalide (s) ou la colonne(s) de la ou des fonction(s) ou definer / invoker of view manque de droits d'utilisation les

Je voudrais simplement mettre à jour la vue pour référencer les colonnes renommées, mais j'ai besoin de connaître la structure actuelle de la vue avant de commencer à fouiller - comment récupérer exactement la structure de la vue une fois qu'elle est cassée? J'ai essayé

SHOW CREATE VIEW object_6

Mais je reçois la même erreur.

Merci pour votre aide à l'avance!

21
demandé sur a_horse_with_no_name 2011-11-16 15:19:50

2 réponses

MySQL:

SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS
WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v';

Référence: la table des vues INFORMATION_SCHEMA

Serveur SQL:

USE databasename
GO

EXEC sp_helptext viewName

Ou aussi une requête comme celle-ci:

SELECT TABLE_NAME as ViewName,
VIEW_DEFINITION as ViewDefinition
FROM INFORMATION_SCHEMA.Views

Où vous pouvez ajouter un WHERE pour récupérer une seule vue

25
répondu Davide Piras 2011-11-16 11:38:47

Supprimez simplement la vue avec "drop view object_6" , puis allez dans le backend pimcore et enregistrez à nouveau la classe. La vue est ensuite régénérée automatiquement.

5
répondu Ben 2013-12-25 21:51:49