Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Outils
Outils Forum d'entraide sur les outils pour MySQL. Avant de poster -> Outils MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/08/2006, 11h39   #1
Membre éprouvé
 
Avatar de Christophe Charron
 
Homme Christophe Charron
Développeur informatique
Inscription : juillet 2005
Messages : 768
Détails du profil
Informations personnelles :
Nom : Homme Christophe Charron
Âge : 51
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2005
Messages : 768
Points : 492
Points : 492
Par défaut De la pertinence de l'utilisation de "using"

Bonjour,
je suis en train de basculer des requêtes version 4.1 en vue version 5. J'essaie d'en profiter pour en rendre certaines plus lisibles mais j'ai un doute sur l'utilisation du mot "USING" dans les requêtes du type suivant :
Code :
1
2
3
4
5
 
SELECT 'BA' AS _table,LA08.BM_CLEUNIK,BA.BA_CLEUNIK,BA_0000_01,BA_0001_00,
BE_0001_00
 FROM BA,BE,LA08 WHERE LA08.BA_CLEUNIK = BA.BA_CLEUNIK 
AND BA.BE_CLEUNIK =BE.BE_CLEUNIK
Code :
1
2
3
4
5
 
CREATE VIEW v_00001 AS 
SELECT 'BA' AS _table,LA08.BM_CLEUNIK,BA.BA_CLEUNIK,BA_0000_01,BA_0001_00,
BE_0001_00
 FROM LA08 LEFT JOIN BA USING (BA_CLEUNIK) LEFT JOIN BE USING (BE_CLEUNIK)
car lorsque je récupère via Mysql Query Browser la requête de création j'obtiens cela
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
DROP VIEW IF EXISTS `base_test_01`.`v_00001`;
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY
 DEFINER VIEW  `base_test_01`.`v_00001` 
AS SELECT _utf8'BA' AS `_table`,`la08`.`BM_CLEUNIK` AS `BM_CLEUNIK`,
`ba`.`BA_CLEUNIK` AS `BA_CLEUNIK`,
`ba`.`BA_0000_01` AS `BA_0000_01`,
`ba`.`BA_0001_00` AS `BA_0001_00`,
`be`.`BE_0001_00` AS `BE_0001_00` 
FROM ((`la08` LEFT JOIN 
`ba` ON((`la08`.`BA_CLEUNIK` = `ba`.`BA_CLEUNIK`))) 
LEFT JOIN `be` ON((`ba`.`BE_CLEUNIK` = `be`.`BE_CLEUNIK`)));
ce qui me semble, je dois l'avouer, un peu plus abscons que ma syntaxe et lorsque je récupére via phpMyAdmin la requête de création, je récupère ceci
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY
 DEFINER VIEW `v_00001` AS 
SELECT _utf8'BA' AS `_table`,`la08`.
`BM_CLEUNIK` AS `BM_CLEUNIK`,
`ba`.`BA_CLEUNIK` AS `BA_CLEUNIK`,
`ba`.`BA_0000_01` AS `BA_0000_01`,
`ba`.`BA_0001_00` AS
 `BA_0001_00`,`be`.`BE_0001_00` AS `BE_0001_00` 
FROM ((`la08` LEFT JOIN `ba` ON((`la08`.`BA_CLEUNIK` = `ba`.`BA_CLEUNIK`))) 
LEFT JOIN `be` 
ON((`ba`.`BE_CLEUNIK` = `be`.`BE_CLEUNIK`)));
ce qui n'est, pour moi, pas plus clair !!

De plus, qu'est ce que ce
Code :
CREATE ALGORITHM=UNDEFINED
, google n'étant pas très prolixe ...
D'avance merci pour vos lumières.
__________________
Cordialement,
Christophe Charron
Pour consulter mon site professionnel, vous pouvez cliquer sur le bouton prévu à cet effet, juste sous la signature .
Christophe Charron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2006, 13h19   #2
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
Le "ON ((`la08`.`BA_CLEUNIK` = `ba`.`BA_CLEUNIK`))" équivaut à USING BA_CLEUNIK.

Quant au ALGORITHM=UNDEFINED, cela signifie que tu n'as pas spécifié MERGE ou TEMPTABLE comme algorithme pour cette vue. Pour en savoir plus, consulte la doc.
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2006, 14h48   #3
Membre éprouvé
 
Avatar de Christophe Charron
 
Homme Christophe Charron
Développeur informatique
Inscription : juillet 2005
Messages : 768
Détails du profil
Informations personnelles :
Nom : Homme Christophe Charron
Âge : 51
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2005
Messages : 768
Points : 492
Points : 492
Bonjour,
Citation:
Envoyé par Maximilian
Le "ON ((`la08`.`BA_CLEUNIK` = `ba`.`BA_CLEUNIK`))" équivaut à USING BA_CLEUNIK.
çà, j'avais intuité, car c'est justement ce que je remplace par le using que je trouve plus "parlant". Le véritable sens de la question était : "Est-ce bien standard d'utiliser ce "using" ?
Citation:
Quant au ALGORITHM=UNDEFINED, cela signifie que tu n'as pas spécifié MERGE ou TEMPTABLE comme algorithme pour cette vue. Pour en savoir plus, consulte la doc.
On peut pas dire que la doc française s'étende sur les paramètres !! Par contre, la doc anglaise en dit un peu plus, et j'aurais tendance à dire que dans mon cas de lecture unidirectionnelle sans lock ni opération extravagante comme des updates ou des delete sur cette vue, l'option "TEMPTABLE" serait plus judicieuse que l'option "MERGE" ... non ?
__________________
Cordialement,
Christophe Charron
Pour consulter mon site professionnel, vous pouvez cliquer sur le bouton prévu à cet effet, juste sous la signature .
Christophe Charron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2006, 15h05   #4
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
Citation:
Envoyé par Christophe Charron
Le véritable sens de la question était : "Est-ce bien standard d'utiliser ce "using" ?
Comme ça c'est plus clair
Un petit extrait de la doc :
Citation:
Beginning with MySQL 5.0.12, natural joins and joins with USING, including outer join variants, are processed according to the SQL:2003 standard. The goal was to align the syntax and semantics of MySQL with respect to NATURAL JOIN and JOIN ... USING according to SQL:2003
Citation:
Envoyé par Christophe Charron
On peut pas dire que la doc française s'étende sur les paramètres !! Par contre, la doc anglaise en dit un peu plus, et j'aurais tendance à dire que dans mon cas de lecture unidirectionnelle sans lock ni opération extravagante comme des updates ou des delete sur cette vue, l'option "TEMPTABLE" serait plus judicieuse que l'option "MERGE" ... non ?
Ca dépend, le problème c'est que TEMPTABLE est incapable de tirer parti des index donc ça peut être gênant...
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2006, 15h35   #5
Membre éprouvé
 
Avatar de Christophe Charron
 
Homme Christophe Charron
Développeur informatique
Inscription : juillet 2005
Messages : 768
Détails du profil
Informations personnelles :
Nom : Homme Christophe Charron
Âge : 51
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2005
Messages : 768
Points : 492
Points : 492
Citation:
Envoyé par Maximilian
Comme ça c'est plus clair
Un petit extrait de la doc :
C'est qu'il m'avait semblé lire ... mais ils sont joueurs alors de transformer ma syntaxe tip top aux avant postes de la norme en phrase antédiluvienne dont personne ne veut plus !! Au passage, faudrait m'expliquer la logique de déjà se conformer au SQL:2003 alors que le but est encore d'atteindre le total nirvana ansi 92/ansi 99
Citation:
Envoyé par Maximilian
Ca dépend, le problème c'est que TEMPTABLE est incapable de tirer parti des index donc ça peut être gênant...
Donc dans le doute, je vais m'abstenir ...
__________________
Cordialement,
Christophe Charron
Pour consulter mon site professionnel, vous pouvez cliquer sur le bouton prévu à cet effet, juste sous la signature .
Christophe Charron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2006, 15h58   #6
Rédacteur
 
Avatar de Biglo
 
Inscription : juillet 2002
Messages : 537
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : juillet 2002
Messages : 537
Points : 561
Points : 561
Citation:
Envoyé par Christophe Charron
Au passage, faudrait m'expliquer la logique de déjà se conformer au SQL:2003 alors que le but est encore d'atteindre le total nirvana ansi 92/ansi 99
Il reste en effet beaucoup de boulot pour atteindre le respect des anciennes normes. Mais transformer un USING en "ON ... = ..." est quand même très rapide à faire. Alors que d'autres fonctionnalités manquantes nécessitent sûrement de restructurer une bonne partie du code source, sans que cela ne crée un conflit avec l'existant.
Biglo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h17.


 
 
 
 
Partenaires

Hébergement Web