C# 将MySQL过程调用存储在.sql脚本文件中并执行
有可能按照标题所说的去做吗?因此,在实践中,我们已经为客户机设置了mysql数据库。我想给他们发送一个带有链接的.sql文件的可执行文件,该文件存储了一个过程,所以一旦他们运行这个脚本,它就会用脚本中的语句更新他们的数据库 我本来可以通过简单地使用诸如UPDATE和ADD(而不是存储过程)之类的mysql语句来实现这一点,将它们存储在一个sql文件中,并让我的c#app执行每一条语句,但是我无法在sql中使用我的案例所需的IF-ELSE条件。过程调用允许使用条件语句,但我不知道如何将它们存储在.sql文件中并执行它们C# 将MySQL过程调用存储在.sql脚本文件中并执行,c#,mysql,stored-procedures,C#,Mysql,Stored Procedures,有可能按照标题所说的去做吗?因此,在实践中,我们已经为客户机设置了mysql数据库。我想给他们发送一个带有链接的.sql文件的可执行文件,该文件存储了一个过程,所以一旦他们运行这个脚本,它就会用脚本中的语句更新他们的数据库 我本来可以通过简单地使用诸如UPDATE和ADD(而不是存储过程)之类的mysql语句来实现这一点,将它们存储在一个sql文件中,并让我的c#app执行每一条语句,但是我无法在sql中使用我的案例所需的IF-ELSE条件。过程调用允许使用条件语句,但我不知道如何将它们存储在.
这可能吗?是的,很可能。您希望在SQL脚本中执行的操作是创建存储过程,然后执行它(并可能在脚本末尾再次删除它) 下面是一个示例脚本:
DROP PROCEDURE IF EXISTS spMyProc;
DELIMITER //
CREATE PROCEDURE spMyProc()
BEGIN
/* Do stuff */
END//
DELIMITER ;
CALL spMyProc();
DROP PROCEDURE spMyProc;
分隔符
命令用于确保常用语句分隔符代码>可以在存储过程的主体中使用,而不是在脚本中使用分隔语句
我在这里创建了一个SQLFiddle来演示,不过由于SQLFiddle中的限制,它没有使用分隔符命令
希望这能让你走上正轨。在我发布这个问题的时候,我确实想到并实现了这个想法。但我没有想到最后会放弃这个程序,这会更好。谢谢酷,伟大的人都这么想:)谢谢你的接受!