Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql 5.1中比较登录名的触发器_Mysql_Validation_Triggers_Mysql 5.1 - Fatal编程技术网

mysql 5.1中比较登录名的触发器

mysql 5.1中比较登录名的触发器,mysql,validation,triggers,mysql-5.1,Mysql,Validation,Triggers,Mysql 5.1,现在它在elseif上给了我一个1064错误。这是我第一次在5.1中创建触发器。我不确定我以前使用的版本,但我成功地使用了这个版本 DROP TRIGGER IF EXISTS greentrucks.iCustomer; DELIMITER GO CREATE TRIGGER greentrucks.iCustomer AFTER INSERT ON customer For each ROW BEGIN DECLARE count int; SET @count = FOUND_ROW

现在它在
elseif
上给了我一个1064错误。这是我第一次在5.1中创建触发器。我不确定我以前使用的版本,但我成功地使用了这个版本

DROP TRIGGER IF EXISTS greentrucks.iCustomer;
DELIMITER GO
CREATE TRIGGER greentrucks.iCustomer AFTER INSERT
ON customer 
For each ROW BEGIN 

DECLARE count int;
SET @count = FOUND_ROWS();
If @count = 0
THEN LEAVE

ELSEIF EXISTS ( SELECT *
            FROM INSERTED i
            WHERE  EXISTS (
            SELECT p.email
            FROM greentrucks.customer p
            WHERE i.email = p.email))

THEN BEGIN
    RAISERROR('That Email is already in use!',16,1);
    IF @@Trancount >0
        ROlLBACK TRANSACTION;
END IF
END IF
END
GO
DELIMITER ;

离开
需要一个标签。请参阅和。此外,还需要用分号终止
LEAVE
语句

MySQL在触发器中似乎没有任何关于
LEAVE
的官方示例。将标签放在
开始之前
。基于此,请尝试以下操作:

DROP TRIGGER IF EXISTS greentrucks.iCustomer;
DELIMITER GO
CREATE TRIGGER greentrucks.iCustomer AFTER INSERT
ON customer 
For each ROW
my_label: BEGIN

DECLARE count int;
SET @count = FOUND_ROWS();
If @count = 0
THEN LEAVE my_label;

... and the rest of your code

我得到了这个错误#1064-您的SQL语法中有一个错误。。。使用near'DECLAREHmm的正确语法,你能试着把它向下移动几行吗,在
IF
之前?对不起,MySQL文档在这方面有些单薄,有误导性。我发现它将标签放在
开始之前
。我将在稍后更新我的答案以反映这一点。你能再试一次吗?好的,解决了这个问题,现在我唯一的问题是Trancount,并检查是否有要回滚的事务。