Bonjour
Lorsque j'utilise la fonction exporter de phpMyAdmin pour sauvegarder ma BDD en format SQL, pour les vues, il :
- Crée une table au nom de la vue avec la structure des colonnes de la vue ;
- Supprime la table qui vient d'être créée ;
- Crée a vue mais avec une syntaxe bizarre qui la rend inutilisable une fois importer sur un autre serveur :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 -- -- Doublure de structure pour la vue `v_utilisateur` -- DROP VIEW IF EXISTS `v_utilisateur`; CREATE TABLE IF NOT EXISTS `v_utilisateur` ( `userId` int(11) ,`userLogin` varchar(24) ,`userValide` tinyint(1) ,`userPwd` varchar(255) ,`userNom` varchar(48) ,`userPrenom` varchar(32) ); -- -- Structure de la vue `v_utilisateur` -- DROP TABLE IF EXISTS `v_utilisateur`; CREATE ALGORITHM=UNDEFINED DEFINER=`pef`@`127.0.0.1` SQL SECURITY DEFINER VIEW `v_utilisateur` AS select `u`.`uti_id_personne_physique` AS `userId`,`u`.`uti_login` AS `userLogin`,`u`.`uti_valide` AS `userValide`,`u`.`uti_mot_passe` AS `userPwd`,`p`.`prs_nom` AS `userNom`,`pph`.`pph_prenom` AS `userPrenom` from ((`th_utilisateur_uti` `u` join `th_personne_physique_pph` `pph` on((`pph`.`pph_id_personne` = `u`.`uti_id_personne_physique`))) join `te_personne_prs` `p` on((`p`.`prs_id` = `pph`.`pph_id_personne`)));
C'est la partie ALGORITHM=UNDEFINED DEFINER=`pef`@`127.0.0.1` SQL SECURITY DEFINER qui fout le bordel !
Lorsqu'on essaie d'interroger la vue, on a un message d'erreur à propos du definer.
J'ai supprimé les vues importées et repris chaque CREATE VIEW ... AS SELECT ... et je n'ai pas eu de souci pour la création ni lors de l'interrogation.
Y a t-il un moyen d'éviter ce morceau inutile lors de la sauvegarde ?
Partager