Mik*_*erk 3 mysql comments dump restore
注意:实际上有两个问题......
当我使用mysqldump二进制文件转储 mysql 数据库时,我得到一个文件,其中包含(在其他行中):
CREATE DATABASE /*!32312 IF NOT EXISTS*/MyDatabase/*!40100 DEFAULT CHARACTER SET 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();
}
Run Code Online (Sandbox Code Playgroud)
我真的必须将 mysql 作为带有命令行参数的进程来启动才能恢复转储吗?因为我真的想在 C# 客户端中使用它作为 SQL 查询来完成转储的恢复,因为它比控制 mysql 二进制文件输出和退出代码等更方便......
它们确实是特定于版本的注释,如注释语法中所述。
仅当服务器支持它们时,这些注释才允许执行语句的可选部分。
/*!40100 DEFAULT CHARACTER SET utf8 */;
Run Code Online (Sandbox Code Playgroud)
表示这部分只有在 MySQL 服务器的版本为 4.01.00 或更高版本时才会执行。
| 归档时间: |
|
| 查看次数: |
953 次 |
| 最近记录: |