Bonjour,

Je souhaiterai variabilisés ma requête SQL pour la rendre standard et donc simplifier la maintenance.



Requête non variabilisé:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Suppression de la BDD
DROP DATABASE IF EXISTS SITE;
 
# Suppression du compte de service SQL
DROP USER IF EXISTS 'Website'@'localhost';
 
# Creation de la BDD
CREATE DATABASE IF NOT EXISTS SITE;
 
# Creation du compte de service
CREATE USER 'Website'@'localhost' IDENTIFIED BY 'mypassword';
 
# Ajout des permissions
GRANT ALL PRIVILEGES ON SITE.* TO 'Website'@'localhost';
 
# Permettre l'authentification en mode passive (Indispensable)
ALTER USER Website@localhost IDENTIFIED VIA mysql_native_password USING PASSWORD('mypassword');


Tentative de variabilisassions de ma requête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
SET @BDD='test';
SET @USERNAME='marc';
SET @PASSWORD='admin';
DROP USER IF EXISTS '@USERNAME'@'localhost';
DROP DATABASE IF EXISTS @BDD;


Code retour en erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Erreur
Analyse statique : 2 erreurs trouvées lors de l'analyse.
 
Une expression était attendue. (near "@BDD" at position 24)
Jeton inattendu. (near "@BDD" at position 24)
 
Requête SQL : Copier
DROP DATABASE IF EXISTS @BDD;
MySQL a répondu : Documentation
#1064 - Erreur de syntaxe près de '@BDD' à la ligne 1