为了避免MySQL存储过程中的此类错误,您需要更改定界符; 至 //。
假设如果使用存储过程,触发器或函数,则需要更改定界符。语法如下。
DELIMITER // CREATE PROCEDURE yourProcedureName() BEGIN Statement1, . . N END; // DELIMITER ;
为了理解上述语法,让我们创建一个存储过程。创建存储过程的查询如下-
mysql> DELIMITER // mysql> CREATE PROCEDURE sp_getAllRecords() -> BEGIN -> SELECT *FROM employeetable; -> END; -> // mysql> DELIMITER ;
使用CALL命令调用存储过程。语法如下。
CALL yourStoredProcedureName();
现在调用上面的过程,返回Employee表的所有记录。查询如下。
mysql> CALL sp_getAllRecords();
以下是输出。
+------------+--------------+----------------+ | EmployeeId | EmployeeName | EmployeeSalary | +------------+--------------+----------------+ | 2 | Bob | 1000 | | 3 | Carol | 2500 | +------------+--------------+----------------+ 2 rows in set (0.00 sec)