0

SQL:

CREATE FUNCTION delete_user (uId INT) RETURNS BOOLEAN
BEGIN
    IF uID >= 0 THEN
        START TRANSACTION;
        DELETE FROM Folder WHERE u_id = uId;
        DELETE FROM `User` WHERE id = uId;
        RETURN 1;
    END IF;
    RETURN 0;
END;

错误:

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

语法错误在哪里?

4

1 回答 1

1

您需要在函数周围放置一个分隔符

delimiter |
CREATE FUNCTION delete_usr (uId INT) RETURNS BOOLEAN
BEGIN
    IF uID >= 0 THEN        
        DELETE FROM Folder WHERE u_id = uId;
        DELETE FROM `User` WHERE id = uId;
        RETURN 1;
    END IF;
    RETURN 0;
END
|
delimiter ;

默认分隔符是;. 但是如果你想创建过程/函数,数据库引擎会认为你的语句在第一个结束;。这将导致不完整的陈述。您可以定义另一个分隔符,然后用它来标记语句的结尾。

于 2013-09-19T10:15:20.270 回答