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
Partager