【发布时间】:2020-04-10 13:13:39
【问题描述】:
我尝试将返回当前数据库名称的“DATABASE()”分配给变量“@mydb”,并使用它来删除该数据库。
SET @mydb = DATABASE();
DROP DATABASE @mydb;
我收到了这个错误ER_PARSE_ERROR near @mydb
【问题讨论】:
标签: mysql sql database mariadb
我尝试将返回当前数据库名称的“DATABASE()”分配给变量“@mydb”,并使用它来删除该数据库。
SET @mydb = DATABASE();
DROP DATABASE @mydb;
我收到了这个错误ER_PARSE_ERROR near @mydb
【问题讨论】:
标签: mysql sql database mariadb
正如 P.Salmon 所说,您必须使用 Prepared Statements:
SET @mydb = DATABASE();
SET @sql = CONCAT('DROP DATABASE ', @mydb);
PREPARE stmt1 FROM @sql;
EXECUTE stmt1;
【讨论】:
EXECUTE 之前,您可能需要执行use 才能退出目录。