Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Der MySQL-Schemaname mit Bindestrich erlaubt mir nicht, eine Befehlszeilenabfrage auszuführen

Die beste Option wäre natürlich, Ihre Datenbank einfach umzubenennen.

Wenn Sonderzeichen in Schema-/Tabellen-/Spaltennamen vorkommen, können Sie dies normalerweise mit Backticks beheben. Da Sie versuchen, ein Shell-Skript auszuführen, wird es leider alles innerhalb von Backticks als Befehl interpretieren.

In MySQL können Sie den sql_mode auf "ANSI_QUOTES" setzen. Tun Sie dies als Administrator/root (in MySQL) mit

mysql> SET GLOBAL sql_mode="ANSI_QUOTES";

Überprüfen Sie zuerst, ob Sie bereits Modi mit

eingestellt haben
mysql> SHOW VARIABLES LIKE 'sql_mode';

Wenn bereits Modi festgelegt sind, schließen Sie diese in SET GLOBAL sql_mode ein Anweisung (getrennt durch , ).

Sie können diese Option auch in Ihrer my.cnf einstellen Datei, sodass dieser Modus bei jedem Start Ihres MySQL-Servers angewendet wird.

Der Effekt ist, dass " ist auch als Bezeichner Anführungszeichen erlaubt. Aber pass auf, dass du nicht " verwendest Verwenden Sie in Abfragen zur Angabe von beliebigem Text stattdessen einfache Anführungszeichen.

  • lesen Sie mehr darüber hier