使用mysql命令创建mysql数据库
本文关键字:mysql 数据库 创建 命令 使用 | 更新日期: 2023-09-27 18:15:24
在尝试使用mysql命令创建数据库时遇到问题。我使用的代码是;
using (MySqlConnection con = connect_db())
{
con.Open();
MySqlCommand cmd = new MySqlCommand("CREATE DATABASE @name;", con);
cmd.Parameters.AddWithValue("@name", "fancydb");
try
{
cmd.ExecuteNonQuery();
}
catch (Exception exc)
{
return;
}
cmd.Dispose();
con.Close();
con.Dispose();
}
当我尝试运行这段代码时,我总是得到一个错误,说我有一个
mysql语法错误"fancydb"
,但当我把名字放在命令,如:"CREATE DATABASE facnydb;"
它工作。有人能向我解释为什么只有当我尝试使用参数时才会发生错误吗?
create-statement不是数据操作语句。只有在这类操作中才允许使用参数。create语句是一个数据定义语句。
我猜这个查询是作为
执行的CREATE DATABASE "fancydb";
是错误的。
SqlCommand 数据操作语言操作不支持数据定义语言操作。
数据操作语言=
SELECT ... FROM ... WHERE ...
INSERT INTO ... VALUES ...
UPDATE ... SET ... WHERE ...
DELETE FROM ... WHERE ...
数据定义语言=
CREATE TABLE ...
DROP TABLE ... ;
ALTER TABLE ... ADD ... INTEGER;
这行得通:
cmd.CommandText = "exec ('CREATE DATABASE ' + @database)";
cmd.Parameters.AddWithValue("@database", restoreDB);
cmd.ExecuteNonQuery();