【问题标题】:MariaDB showing error while creating procedureMariaDB 在创建过程时显示错误
【发布时间】:2019-02-13 17:47:29
【问题描述】:

Maria DB (Xampp) 在执行以下代码时显示错误:

代码:

   DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_createUser`(
    IN p_name VARCHAR(20),
    IN p_username VARCHAR(20),
    IN p_password VARCHAR(20)
)
BEGIN
    if ( select exists (select 1 from tbl_user where user_username = p_username) ) THEN

        select 'Username Exists !!';

    ELSE

        insert into tbl_user
        (
            user_name,
            user_username,
            user_password
        )
        values
        (
            p_name,
            p_username,
            p_password
        );

    END IF;
END$$
DELIMITER ;

错误:

#1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以了解在第 9 行的 '' 附近使用的正确语法

【问题讨论】:

  • 您可以删除第一个 SELECT(只是一个标记,而不是整个语句)。

标签: mysql xampp mariadb


【解决方案1】:

我无法重现该问题:

MariaDB [_]> DROP PROCEDURE IF EXISTS `sp_createUser`;
Query OK, 0 rows affected (0.001 sec)

MariaDB [_]> DELIMITER $$

MariaDB [_]> CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_createUser`(
    ->   IN `p_name` VARCHAR(20),
    ->   IN `p_username` VARCHAR(20),
    ->   IN `p_password` VARCHAR(20)
    -> )
    -> BEGIN
    ->   IF ( select exists
    ->          (select 1
    ->           from tbl_user
    ->           where user_username = p_username) ) THEN
    ->     SELECT 'Username Exists !!';
    ->   ELSE
    ->     INSERT INTO `tbl_user`
    ->     (
    ->         `user_name`,
    ->         `user_username`,
    ->         `user_password`
    ->     )
    ->     VALUES
    ->     (
    ->         `p_name`,
    ->         `p_username`,
    ->         `p_password`
    ->     );
    ->     END IF;
    -> END$$
Query OK, 0 rows affected (0.000 sec)

MariaDB [_]> DELIMITER ;

【讨论】:

    猜你喜欢
    • 2022-01-15
    • 2018-03-23
    • 1970-01-01
    • 1970-01-01
    • 2019-09-22
    • 2021-10-09
    • 1970-01-01
    • 2018-05-02
    • 1970-01-01
    相关资源
    最近更新 更多