Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes 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 13/08/2008, 18h04   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 34
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 34
Points : 10
Points : 10
Envoyer un message via MSN à cisnake
Par défaut verifier l'existence d'un index avant de le creer

Bonjour,
peut on verifier l'existance d'un index avant de le creer.
tout cela doit etre mis dans une commande ou on placera dans un fichier toto.sql

j'ai essayé cette commande mais ca marche pas
Code :
IF NOT EXISTS (SELECT * FROM sysindexes WHERE id=object_id('NE_LOG_TABLE') AND name='toto') CREATE INDEX toto ON NE_LOG_TABLE(logical_name);
je recois l'erreur suivante
Code :
ERROR 1064 (42000): You have an error IN your SQL syntax; CHECK the manual that corresponds TO your MySQL server version FOR the RIGHT syntax TO USE near 'if not exists (select * from sysindexes where id=object_id('NE_LOG_TABLE') and n' at line 1
il est à preciser que je travaille sur musql 4.0

Merci de vos reponses
cisnake est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2008, 12h20   #2
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 408
Points : 6 408
Bonjour,

Il faut d'abord tester l'existence d'index, puis en créer un en cas de besoin, mais je ne pense pas que ça soit faisable en une seule instruction.
Pour tester la présence d'index sur une table :
Code :
SHOW INDEX FROM tbl_name [FROM db_name]
ced
__________________
Rédacteur / Modérateur SGBD
Mes tutoriels et la FAQ MySQL

----------------------------------------------------
Pensez aux balises code et au tag
Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2008, 12h12   #3
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 34
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 34
Points : 10
Points : 10
Envoyer un message via MSN à cisnake
Effectivement, l'instruction
Code :
 SHOW INDEX FROM tbl_name [FROM db_name]
ne peut être exploité qu'à partir de l'oeil nu.
Mois je voudrais automatiser cela dans un fichier.sql qui sera executé une seule fois.
cisnake est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2008, 12h31   #4
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 408
Points : 6 408
En pure instruction SQL, avec MySQL 4.0 et dans un seul fichier, je crois bien que ça n'est pas possible .

ced
__________________
Rédacteur / Modérateur SGBD
Mes tutoriels et la FAQ MySQL

----------------------------------------------------
Pensez aux balises code et au tag
Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h13.


 
 
 
 
Partenaires

Hébergement Web