gpt4 book ai didi

mysql - MYSQL 中创建函数错误

转载 作者:行者123 更新时间:2023-11-29 13:01:05 25 4
gpt4 key购买 nike

我遇到了这个错误:错误代码:1064。您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 19 行 '' 附近使用的正确语法

DELIMITER $$
CREATE FUNCTION cadastrar_usuario(email VARCHAR(100), senha VARCHAR(30), nome VARCHAR(100), sobrenome VARCHAR(100)) RETURNS INT
BEGIN
DECLARE ID INT;
DECLARE EXISTE_EMAIL INT;

IF (email = '') || (senha = '') || (nome = '') || (sobrenome = '') THEN
RETURN 1;

SELECT LAST_INSERT_ID() INTO ID;

SELECT COUNT(CODUSUARIO) FROM USUARIO_EMAIL WHERE EMAIL = email INTO EXISTE_EMAIL;
IF EXISTE_EMAIL > 0 THEN
RETURN 2;

INSERT INTO USUARIO VALUES(0, senha, nome, sobrenome);
INSERT INTO USUARIO_EMAIL VALUES(ID, email, NULL);

RETURN 0;
**END$$** This is the line 19

DELIMITER ;

我不知道问题是什么。

已经谢谢了。

最佳答案

您忘记关闭 IF block :

DROP FUNCTION IF EXISTS cadastrar_usuario;

DELIMITER $$
CREATE FUNCTION cadastrar_usuario(email VARCHAR(100), senha VARCHAR(30),
nome VARCHAR(100), sobrenome VARCHAR(100)) RETURNS INT
BEGIN
DECLARE ID INT;
DECLARE EXISTE_EMAIL INT;

IF (email = '') || (senha = '') || (nome = '') || (sobrenome = '') THEN
RETURN 1;
END IF;

SELECT LAST_INSERT_ID() INTO ID;

SELECT COUNT(CODUSUARIO) FROM USUARIO_EMAIL WHERE EMAIL = email INTO EXISTE_EMAIL;

IF EXISTE_EMAIL > 0 THEN
RETURN 2;
END IF;

INSERT INTO USUARIO VALUES(0, senha, nome, sobrenome);
INSERT INTO USUARIO_EMAIL VALUES(ID, email, NULL);

RETURN 0;

END

$$

DELIMITER ;

(已在 MySQL 5.6.12 社区上测试并运行)。

关于mysql - MYSQL 中创建函数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23329621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com