一尘不染

MySQL使用定界符创建存储过程语法

mysql

我正在尝试使用如下分隔符在MySQL中创建存储过程:

use am;

DELIMITER $$

CREATE PROCEDURE addfields()
BEGIN
  DECLARE done INT DEFAULT FALSE;
  DECLARE acc INT(16);
  DECLARE validId INT DEFAULT 0;

END $$

DELIMITER ;

它给我一个错误:

#1304 - PROCEDURE addfields already exists

用分隔符创建存储过程并将其删除(如果存在的话)的正确语法是什么?


阅读 476

收藏
2020-05-17

共1个答案

一尘不染

这是带有分隔符的示例 MYSQL存储过程 以及如何调用。

DELIMITER $$

DROP PROCEDURE IF EXISTS `sp_user_login` $$
CREATE DEFINER=`root`@`%` PROCEDURE `sp_user_login`(
  IN loc_username VARCHAR(255),
  IN loc_password VARCHAR(255)
)
BEGIN

  SELECT user_id,
         user_name,
         user_emailid,
         user_profileimage,
         last_update
    FROM tbl_user
   WHERE user_name = loc_username
     AND password = loc_password
     AND status = 1;

END $$

DELIMITER ;

并通过mysql_connection规范进行调用,

$loginCheck="call sp_user_login('".$username."','".$password."');";

它将返回该过程的结果。

2020-05-17