大家好,我在SQL中遇到了这个问题:mysql在第4行总是给我语法错误,但我真的不知道这可能是什么

问题描述 投票:-3回答:1

这里是代码:

CREATE TRIGGER inserisci_richiesta_noID AFTER INSERT ON Richiesta
FOR EACH ROW
BEGIN    
    IF (NEW.ID_Cliente == NULL AND (NEW.Email NOT IN (SELECT Email FROM Utente))) THEN
        INSERT INTO Utente(ID, Nome, Cognome, Email, Telefono, ID_Livello_accesso)
        VALUES (NULL, 'Generato', 'Automaticamnete', NEW.Email, NEW.Telefono, 1);
        UPDATE Richiesta
        SET ID_Cliente = (SELECT ID FROM Cliente WHERE Email = :NEW.Email);
    ELSE NEW.ID_Cliente == NULL AND NEW.Email IN (SELECT Email FROM Utente;) THEN
        UPDATE Richiesta
        SET ID_Cliente = (SELECT ID FROM Cliente WHERE Email = NEW.Email);
    END IF;
END;

它给我这个错误:

1064-您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以在'== NULL AND(NEW.Email NOT IN(SELECT Email From Utente))附近使用正确的语法在第4行插入U'

mysql sql triggers
1个回答
0
投票
DELIMITER $$

在Richiesta上插入后创建inserisci_richiesta_noID触发器每行开始如果(NEW.ID_Cliente为NULL和(NEW.Email NOT IN(从Utente选择电子邮件)))然后插入Utente(ID,Nome,Cognome,电子邮件,Telefono,ID_Livello_accesso)值(NULL,'Generato','Automaticamnete',NEW.Email,NEW.Telefono,1)更新RichiestaSET ID_Cliente =(从Cliente WHERE电子邮件中选择的ID = NEW.Email);ELSE IF(NEW.ID_Cliente为NULL和NEW.Email IN(从Utente选择电子邮件))然后更新RichiestaSET ID_Cliente =(从Cliente WHERE电子邮件中选择的ID = NEW.Email);万一;END $$

© www.soinside.com 2019 - 2024. All rights reserved.