mysql - 将用户名存储到 mysql sql 文件中的变量中

标签 mysql

我有一个 mysql sql 文件,它在多个位置使用该用户。我希望能够定义一个存储用户的变量,以便我可以在多个地方使用它。

我的 sql 文件如下所示...

SET @username = "'myapp'@'localhost'";
DROP USER if exists @username;
DROP DATABASE if exists mydb;
CREATE DATABASE mydb;

use mydb;

CREATE TABLE mydb.table1 (
    match_id INT AUTO_INCREMENT PRIMARY KEY,
    board BINARY(64) NOT NULL
);

 CREATE USER @username IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON mydb.table1 TO @username;

但这绝对行不通......

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@username IDENTIFIED BY 'password'' at line 1

有什么办法可以做到这一点吗?

最佳答案

您可能可以使用准备好的语句(这有点复杂),但如果您特别想使用用户定义的变量作为您所描述的用户名的直接替换,那么答案是否定的。

这被报告为错误:https://bugs.mysql.com/bug.php?id=28406

关于mysql - 将用户名存储到 mysql sql 文件中的变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57105289/

相关文章:

php - mysqli 查询返回没有数据的行

php - 无法从 MYSQL 数据库回显数据

java - 从 MySQL 主动更新 Java 的方法

php - 如何使用数组和内爆使我的查询像这样?

MySQL存储 "Generic"数据(可以很长或很短)

mysql - MySQL Workbench 会自动为外键创建索引吗?

mysql - 在 1 个查询中计算同一 mysql 行中的 2 个不同字段

php - 在sql中查找与html按钮的id具有相同id的记录并生成模态

php - 在一个sql查询中更新多行

javascript - 将 Ajax 数据发布到 PHP REST 服务