gpt4 book ai didi

mysql - 数据库名称作为 MySQL 查询中的变量

转载 作者:行者123 更新时间:2023-11-29 18:50:50 26 4
gpt4 key购买 nike

我正在创建一个 MySQL 转储文件,需要与多个数据库一起运行。结构大致是这样的:

SET @parent_database = 'db_name';
CREATE OR REPLACE VIEW t_colours AS
SELECT `key_name`, `value`
FROM @parent_database. `colours` as COLOURS WHERE 1;

下次运行此查询时,我的计划是仅更改变量 parent_database

这可能吗?

现在每次我运行这个,我都会收到一个错误:

#1064 - 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 '@parent_database.`colours` as COLOURS WHERE 1' at line 1

有什么办法可以实现这一点吗?

还有更多 View 需要创建。

最佳答案

当您执行查询时,mysql 将表名视为对象而不是字符串,因此这不会像您期望的那样工作。

但是,有一个出路,您可以使用类似于下面代码片段的内容。

SET @parent_database = 'db_name';
SET @q = CONCAT('CREATE OR REPLACE VIEW t_colours AS SELECT `key_name`,`value` FROM', @parent_database, '.`colours` as COLOURS WHERE 1;');
PREPARE stmt FROM @q;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

关于mysql - 数据库名称作为 MySQL 查询中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44365516/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com