【问题标题】:Stored procedure creation using MySqlConnector 2.0.0 fails使用 MySqlConnector 2.0.0 创建存储过程失败
【发布时间】:2021-11-18 16:41:27
【问题描述】:

我正在尝试将 MySqlConnector 从 0.60.3 升级到 2.0.0

这是我用于CommandText 的文字:

CREATE PROCEDURE proc(OUT p_out INT) 
BEGIN
  SET p_out = 1;
  SELECT 200;
END;

这是我收到的错误消息:

(0x80004005): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3

据我了解,根据此文档,我的语法是正确的:

https://mysqlconnector.net/troubleshooting/delimiter/

更新:

事实证明,我的方法在我手动调用的MySqlCommand.Prepare() 上失败了。如果没有此调用,ExecuteNonQuery() 将按预期工作。

【问题讨论】:

    标签: c# mysql-connector


    【解决方案1】:

    MySqlCommand.Prepare() 函数用于从特定命令文本中生成准备好的语句。

    但是您应该检查MySQL prepared statements documentation 并意识到准备好的语句在您尝试做的事情中没有意义。

    准备好的语句在 DML(数据操作语言)查询中有意义,但您的命令文本是 DDL(数据定义语言)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-13
      • 2018-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多