MySQL变量存储数据库名称

2023-12-02

我有一个很长的脚本,需要在几个不同的数据库上运行(所有数据库都具有相同的表和字段名称)。

我想做的是这样的:

1  SET @TARGET_DATABASE = 'beta'
2  SET @SOURCE_DATABASE = 'sandbox';
3  
4  CREATE DATABASE IF NOT EXISTS @TARGET_DATABASE;
5  USE @TARGET_DATABASE;

...

10 INSERT INTO `tableFoo` SELECT * FROM @SOURCE_DATABASE.`tableFoo`;

在第 10 行,我收到一个错误(我并不感到惊讶):“脚本行:10 您的 SQL 语法有错误;请检查与您的 MySQL 服务器版本相对应的手册,以了解在 '@SOURCE_DATABASE 附近使用的正确语法。tableFoo’在线上……”

所以我在第 10 行尝试了这个:

10 SET @TABLE=CONCAT('`',@SOURCE_DATABASE,'`','.`tableFoo`');
11 INSERT INTO `tableFoo` SELECT * FROM @TABLE;

...再次出现错误“脚本行:11 您的 SQL 语法有错误;请检查与您的 MySQL 服务器版本相对应的手册,以获取在行附近 '@TABLE' 附近使用的正确语法...”看吧,10号线运行良好...

有什么方法可以用变量引用数据库中的表吗?

// 谢谢。


如果您连接整个查询,它将起作用。尝试:

set @db = 'mydb';
set @tble = 'table';

set @query = concat('INSERT INTO tablefoo SELECT * FROM ', @db, '.', @tble);
PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL变量存储数据库名称 的相关文章

随机推荐

  • random.choice() 有两个参数? [复制]

    这个问题在这里已经有答案了 我在以下掷骰子函数中犯了一个简单的错误 import random def rollDie return random choice 1 2 3 4 5 6 print rollDie 我确实知道我需要将序列作为
  • 如何在 Dart 中编码为 UTF16 Little Endian?

    我正在尝试使用 Dart 来操作程序使用的一些系统变量 我遇到过这样的问题飞镖的utf软件包已停产 并且我还没有找到任何方法来编码为 UTF 16 Little EndianFile 写 Dart 中是否有可以进行字节到 UTF 16 LE
  • 较新的 JRE 版本可以运行使用较旧的 JDK 版本编译的 Java 程序吗?

    运行用 Java 版本 1 6 编译的 Java 程序和相关库时我会遇到任何问题吗 and1 7 我使用 1 7 进行编译 而某些库是使用 1 6 进行编译 并在 1 7 JRE 中运行整个程序 As answered already yo
  • OpenGL 纹理映射顽固地拒绝工作

    我正在用 D 编程语言使用 SDL 和 OpenGL 编写 2D 游戏 目前它只是尝试将纹理映射的四边形渲染到屏幕上 问题是 整个纹理映射部分似乎不太工作 尽管纹理显然加载得很好 分配了一个非零纹理编号 不会导致 glGetError 返回
  • 这里如何使用不完整的类型作为向量的模板参数?

    直到以下程序是合法的以及诸如此类的 include
  • Excel 中的随机数数组

    如何使用以下命令创建随机数数组RAND or RANDBETWEEN功能 我正在尝试用一个公式模拟 10 卷六面骰子 例如 的平均结果 我过去曾尝试过以下方法 但它只创建一个随机数并重复它 SUMPRODUCT ROW A1 A10 0 I
  • 基于 SQL 集的范围

    如何让 SQL 在不循环的情况下重复某些基于集合的操作任意次数 如何让 SQL 对一系列数字执行操作 我基本上是在寻找一种方法来执行基于集合的 for 循环 我知道我可以创建一个包含整数的小表 例如从 1 到 1000 然后将其用于该范围内
  • 如何在使用集合时将项目添加到集合中?

    下面的示例抛出 InvalidOperationException 集合已修改 枚举操作可能无法执行 执行代码时 var urls new List
  • Android WebView在查看html嵌套列表时加载空白

    我正在尝试使用 Android 将大小合理的 html 嵌套列表加载到 WebView 中 问题是当我尝试加载 html 时 它看起来是空白的 现在我已经尝试了几种不同的方法 我首先尝试了 W3Schools Try It Yourself
  • 是否可以在变量中获取 Phalcon\Mvc\View 渲染输出?

    我需要返回 json 对象 该对象具有带有渲染操作的属性 html 是否可以使用 Phalcon vew 进行本地操作 Example posts NewsPost find limit gt 10 view new Phalcon Mvc
  • ImportError:pyInstaller 之后没有名为“tkinter”的模块

    我想做一个可执行文件 但每次运行 exe 时它都会写入ImportError No module named tkinter 以及我在 Stack Overflow 上读到的所有内容都对我没有帮助 我的 python 程序很简单 ODE 求
  • 当我尝试创建触发器时 PostgreSQL 出现语法错误

    我想在 PostgreSQL 中创建触发器 逻辑很简单 我需要触发器 如果 published at更新并且writing at为空 则将published at设置为writing at 我写了这个 但失败了 有人有想法吗 CREATE
  • 为每个子图提供标题 - R Shiny

    我正在尝试使用 blondeclover 的以下代码创建绘图 代码如下 library shiny library ggplot2 library plotly library grid shinyApp ui ui fluidPage f
  • Google 柱形图单个日期和值显示为多个相邻条

    数据表结构如下 cols id label Date pattern type date id Col1 label Col1 Label pattern type number rows c v Date 2017 5 27 v 213
  • WebDriver 关闭弹出窗口

    我的网络驱动程序测试因出现弹出窗口而卡住 我如何在测试中关闭它 这是我的代码 Test public void canGoToSomePage throws Exception final WebDriver webDriver getFi
  • Activity崩溃后如何自动重启?

    有没有办法让我创建一个服务来跟踪我的活动类并在崩溃后重新启动它 请注意 我不能使用未捕获的处理程序线程方法来重新启动我的应用程序 我的应用程序应该会崩溃 不用担心那部分 我的应用程序很简单 就像这样 private class AudioR
  • 替换 MS SQL Server 中的特定 Unicode 字符

    我正在使用 MS SQL Server Express 2012 我在删除 unicode 字符时遇到问题U 02CC 十进制 716 在网格结果中 原文是 e r 我像这样尝试过 它不起作用 SELECT ColumnTextWithUn
  • 最简单的 MySQL 到 MySQLi 过渡

    我目前正在使用我在课堂上教授的已贬值的MySQL 我发现这不是正确的方法 有两个更好的选择 MySQLi 和更好的 PDO 虽然我发现切换到 PDO 对我来说有点困难 因为我对 OOP 一无所知 但我认为至少切换到 MySQLi 是必须的
  • 修复“包含重复的‘编译’项目。” Visual Studio 中的错误

    这是一个非常烦人的 VS 错误 我使用的是 VS 2019 16 8 1 我花了很多时间来修复它 包含重复的 编译 项目 NET SDK 包括 默认情况下从项目目录 编译 项目 你可以 从项目文件中删除这些项目 或设置 如果需要 可将 En
  • MySQL变量存储数据库名称

    我有一个很长的脚本 需要在几个不同的数据库上运行 所有数据库都具有相同的表和字段名称 我想做的是这样的 1 SET TARGET DATABASE beta 2 SET SOURCE DATABASE sandbox 3 4 CREATE