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,

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