0

我在自定义操作中运行脚本时遇到问题。该脚本在 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 ;

在脚本中,在此过程之前,我还有另外 2 个可以完美运行的过程。

安装应用程序时出现的错误是“必须定义参数'@s'”。寻找互联网我找到了这个博客,但我添加了“允许用户变量=真;” 没有运气。有了这段文字,脚本直接在第一个过程中崩溃。事实上,它总是崩溃,无论它找到什么(程序,表格......)。我得到的错误是绝对没用的“你的 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

4

0 回答 0