gpt4 book ai didi

MySql Dump 输出条件注释?执行转储作为查询以恢复数据库

转载 作者:行者123 更新时间:2023-11-29 05:30:03 25 4
gpt4 key购买 nike

注:其实两个问题...

当我使用 mysqldump 二进制文件转储 mysql 数据库时,我得到一个包含(除其他行外)以下内容的文件:CREATE DATABASE/*!32312 IF NOT EXISTS*/MyDatabase/*!40100 默认字符集 utf8 */;

我已经在 Google 和 MySql 引用资料上进行了搜索,但我无法找到这些/*!32312 的含义以及它们的工作原理。我只能猜测它们是条件注释。像例如如果 build > 32312,执行“IF NOT EXIST”?

任何人都可以阐明这一点吗?

我之所以想知道这一点,是因为我无法在 C# 客户端中使用转储内容作为 1 个查询来执行恢复。使用此代码:

            MySqlConnection msc = default(MySqlConnection);
MySqlCommand cmd = default(MySqlCommand);
MySqlTransaction mst = default(MySqlTransaction);
try
{
//Create a connection to the database
msc = new MySqlConnection(ConnectionString);
msc.Open();

//Creata a MySql Transaction
mst = msc.BeginTransaction();

cmd = msc.CreateCommand();
cmd.Transaction = mst;
cmd.CommandText = ContentsOfMySqlDumpSql;

cmd.ExecuteNonQuery();

mst.Commit();
}

我真的必须将 mysql 作为一个带有命令行参数的进程来启动以恢复转储吗?因为我真的想在 C# 客户端中使用它作为 SQL 查询来完成转储的恢复,因为它比控制 mysql 二进制文件输出和退出代码等更方便...

最佳答案

它们确实是特定于版本的注释,如 Comment syntax 中所解释的那样.

只有在服务器支持的情况下,这些注释才允许执行语句的可选部分。

/*!40100 DEFAULT CHARACTER SET utf8 */;

表示只有MySQL服务器版本为4.01.00或更高版本时才会执行此部分。

关于MySql Dump 输出条件注释?执行转储作为查询以恢复数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15809285/

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