Mysql
 sql >> Base de données >  >> RDS >> Mysql

Le nom de schéma MySQL avec un tiret ne me permet pas d'exécuter une requête de ligne de commande

La meilleure option serait bien sûr de simplement renommer votre base de données.

Habituellement, lorsque des caractères spéciaux apparaissent dans les noms de schéma/table/colonne, vous pouvez résoudre ce problème avec des backticks. Puisque vous essayez d'exécuter un script shell, il interprétera malheureusement tout ce qui se trouve dans les backticks comme une commande.

Dans MySQL, vous pouvez définir le sql_mode "ANSI_QUOTES". Faites-le en tant qu'administrateur/root (dans MySQL) avec

mysql> SET GLOBAL sql_mode="ANSI_QUOTES";

Vérifiez d'abord si vous avez déjà défini des modes avec

mysql> SHOW VARIABLES LIKE 'sql_mode';

Si des modes sont déjà définis, incluez-les dans le SET GLOBAL sql_mode déclaration (séparée par , ).

Vous pouvez également définir cette option dans votre my.cnf fichier, afin que ce mode soit appliqué à chaque démarrage de votre serveur MySQL.

L'effet est que " est également autorisé comme guillemet d'identification. Mais attention, que vous n'utilisez pas " dans les requêtes pour spécifier n'importe quel texte, utilisez plutôt des guillemets simples.

  • en savoir plus ici