Je veux créer une table qui est un cache des résultats d'une vue. Existe-t-il un moyen simple de définir automatiquement la table à partir de la définition de la vue, ou devrai-je la bricolé à partir de show create table view
?
Vous pouvez faire CREATE TABLE SELECT
Depuis la vue pour le construire. Cela devrait dupliquer la structure de la vue en tant que nouveau tableau contenant toutes les lignes de la vue. Voici le référence de syntaxe MySQL pour cette instruction.
CREATE TABLE tbl_from_view AS
SELECT
col1,
col2,
col3,
col4,
col5
FROM your_view;
Notez que vous voudrez être très explicite dans vos sélections de colonnes. Il n'est pas conseillé de faire un SELECT *
À partir de la vue source. Assurez-vous également que vous disposez d'alias pour toutes les colonnes calculées ou agrégées telles que COUNT(*), MAX(*), (col1 + col2)
, etc.
J'ai également constaté que dans la sortie mysqldump, il existe des instructions qui créent la vue sous forme de tableau, juste avant de définir la vue. Je peux les analyser et les exécuter en tant que requêtes.