MYSQL Suppression et Creation conditionnel

pcouas Messages postés 37 Statut Membre -  
 pcouas -
Bonjour,

Quel est la syntaxe pour gerer une erreur sur un DROP USER ou un REVOKE de droits ci ceux ci n'existe pas sans que mon script SQL ne s'arrete ?

Merci d'avance
Philippe

J'ai essaye sans succes cela mysql -u root -p</tmp/essai.sql

le fichier essai.sql

IF EXISTS(SELECT User FROM mysql.USER WHERE User='user1') THEN
DELETE FROM mysql.USER WHERE user='user1' AND host='localhost';
FLUSH PRIVILEGES;
DROP USER 'user1'@'localhost';
END IF;

celui ci nonplus ?
IF EXISTS(SELECT user FROM mysql.user WHERE user='user1') THEN
DROP user 'user1'@'localhost';
END IF;

4 réponses

  1. Siluni
     
    Il me semblait qu'en MySQL la commande IF est de ce genre

    IF(condition, true, false)
    0
  2. pcouas Messages postés 37 Statut Membre
     
    Bonjour,

    J'ai essaye ceci sans succes

    IF((SELECT count(*) FROM mysql.USER WHERE user='user1')>0,
    REVOKE ALL PRIVILEGES ON DB.* FROM 'user1'@'localhost';
    REVOKE ALL PRIVILEGES ON DB.* FROM 'user1'@'%';
    DELETE FROM mysql.USER where user='user1';
    FLUSH PRIVILEGES;
    DROP USER 'user1'@'localhost';
    DROP USER 'user1'@'%';,,)
    0
  3. pcouas Messages postés 37 Statut Membre
     
    Bonjour

    pour l'instant cela me donne une erreur
    ERROR 1064 (42000) at line 1: 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 'CASE WHEN (SELECT count(*) FROM mysql.USER WHERE user='user1')>0)
    THEN
    RE' at line 1
    0
    1. pcouas
       
      Je lance la commande depuis un fichier .sql en faisant
      mysql -u root -p </tmp/es.sql
      Peut etre me faut il des commandes en plus ?
      J'utilise Mysql 5.1

      Merci
      0