MYSQL Suppression et Creation conditionnel
pcouas
Messages postés
37
Statut
Membre
-
pcouas -
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;
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
-
-
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'@'%';,,) -
Et si tu fait plutôt
CASE WHEN (SELECT count(*) FROM mysql.USER WHERE user='user1')>0) THEN 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'@'%'; END;
https://dev.mysql.com/doc/refman/8.0/en/control-flow-functions.html -
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