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;
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