我有一个奇怪的逃避问题。 USE声明不能像我期望的那样工作。以下是我尝试的三个陈述,但只有最后一个有效:
engine=create_engine("mysql+pymysql://l:pw@myserver")
engine.execute("use :db", db='mydb') # fails
engine.execute("use 'mydb'") # fails
engine.execute("use `mydb`") # works fine
失败的stements引发异常“你的SQL语法有错误......”。我检查了通过线路发送的查询,它是“使用'mydb'”。但是从MySQL cli执行的查询工作正常。为什么它不能在SQLAlchemy中运行?
PS我尝试使用“SET sql_mode = ANSI_QUOTES”并将SQLAlchemy和PyMySQL更新到最新版本。还试过mysqlclient驱动程序,没有运气。