我在自定义操作中运行脚本时遇到问题。该脚本在localhost MySQL服务器中创建并设置数据库。
具体地说,我的一个程序有问题:
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `UpdateAutoInc`(IN `increment` BIGINT)
BEGIN
SET @s = concat('ALTER TABLE tblactionservices AUTO_INCREMENT ',increment);
PREPARE stmt FROM @s;
EXECUTE stmt;
SET @s = concat('ALTER TABLE tblbannedclient AUTO_INCREMENT ',increment);
PREPARE stmt FROM @s;
EXECUTE stmt;
END$$
DELIMITER ;
在脚本中,在此过程之前,我还有其他两个完美运行的过程。
我安装应用程序时遇到的错误是"参数' @ s'必须定义"。寻找互联网我找到了blog,但我添加了"允许用户变量=真;"没有运气。使用这段文本,脚本直接在第一个过程崩溃。实际上,无论发现什么(程序,表......),它总会崩溃。我得到的错误绝对无用"您的SQL语法中有错误;检查手册bla bla",所以我找不到问题。
这是我用来从c#运行脚本的课程:
private void ExecuteSql(string DatabaseName, string Sql)
{
MySqlConnection connection = new MySqlConnection { ConnectionString = "server=127.0.0.1;User Id=root" };
MySqlCommand command = new MySqlCommand(Sql, connection);
command.Connection.Close();
command.Connection.Open();
try
{
command.ExecuteNonQuery();
}
finally
{
// Closing the connection should be done in a Finally block
command.Connection.Close();
}
}
脚本未手动输入,但是它是从PhPMyAdmin自动生成的。 MySQL服务器的版本是5.5,连接器版本是6.5.5.0