MYSQL Suppression et Creation conditionnel

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. 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
    1. 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
  2. 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'@'%';,,)