Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql程序错误错误1304&;错误1305_Sql_Mysql_Stored Procedures - Fatal编程技术网

mysql程序错误错误1304&;错误1305

mysql程序错误错误1304&;错误1305,sql,mysql,stored-procedures,Sql,Mysql,Stored Procedures,我不熟悉使用程序,似乎无法让我的程序正常工作。我正在使用MySQL v5.1.36,并在WAMPP服务器上使用MySQL控制台输入代码。如果我转到(重新)创建过程。我得到错误#1304(42000) 但是,如果我尝试使用该过程,我会得到错误#1305(42000) 如果一个程序存在,那么另一个程序怎么可能不存在?我做错了什么。我认为问题在于 出现第一个错误是因为您正在尝试重新创建现有过程。如果先删除该过程,则不会出现此错误 第二个错误是因为过程是用CALL语句调用的,而函数是作为函数引用调用的,

我不熟悉使用程序,似乎无法让我的程序正常工作。我正在使用MySQL v5.1.36,并在WAMPP服务器上使用MySQL控制台输入代码。如果我转到(重新)创建过程。我得到错误#1304(42000)

但是,如果我尝试使用该过程,我会得到错误#1305(42000)


如果一个程序存在,那么另一个程序怎么可能不存在?我做错了什么。

我认为问题在于

  • 出现第一个错误是因为您正在尝试重新创建现有过程。如果先删除该过程,则不会出现此错误
  • 第二个错误是因为过程是用CALL语句调用的,而函数是作为函数引用调用的,就像在代码中一样。您必须定义函数,而不是过程。上面写着:
  • CREATEFUNCTION语句也是 在MySQL中用于支持UDF (用户定义的函数)。见第节 21.2,“向MySQL添加新功能”。UDF可以被视为一个外部变量 存储函数。存储函数 与UDF共享它们的名称空间。看见 第8.2.3节,“函数名解析 规则中的“和决议” 描述服务器如何解释 对不同类型文件的引用 功能

    要调用存储过程,请使用 调用声明(见第12.2.1节, “调用语法”)。调用存储的 函数,请在 表情。该函数返回一个 表达式求值期间的值


    非常感谢。这很明显,但我无法通过它,因为我确信我正在执行一个SP,就像SQL Server一样。:-)
    mysql>  DELIMITER //
    mysql>
    mysql>  CREATE PROCEDURE modx.getCRID (IN x VARCHAR(255),OUT y INT)
        ->  BEGIN
        ->          DECLARE y INT;
        ->          SELECT id INTO y
        ->          FROM `modx`.coverage_region
        ->          WHERE `coverage_region`.name = x;
        ->  END//
    ERROR 1304 (42000): PROCEDURE getCRID already exists
    mysql>
    mysql>  DELIMITER ;
    
    mysql> USE modx;
    Database changed
    mysql> SET @crID = modx.getCRID("South East");
    ERROR 1305 (42000): FUNCTION modx.getCRID does not exist