Trigger to check for data in another table

Asked

Viewed 31 times

-2

I’m trying to create a Trigger, using the following tables:

inserir a descrição da imagem aqui

The Trigger will be in the Table Carrier, and only need to check if in City.codcidade, there is some value equal to the Carrier.Cidade_codcidade, I am entering.

I arrived at the following code, but is giving syntax error:

CREATE TRIGGER VerificaCidade BEFORE INSERT ON Transportadora
FOR EACH ROW
BEGIN
    IF (NEW.Cidade_codcidade NOT IN (SELECT codcidade FROM Cidade) THEN
    INSERT INTO Cidade (codcidade,
                        cidade,
                        uf)
    VALUES (NEW.Cidade_codcidade,
            'CADASTRAR',
            'CADASTRAR');
   END IF;
END;

1 answer

0

As indicated:

The Trigger will be in the Table Carrier, and need only check if in City.codcidade, there is some value equal to the Transport.City_codcity, which I am inserting.

Just check with the function count if the amount of records in cidade is equal to zero, if true, will execute the insert as per your original command.

CREATE TRIGGER VerificaCidade BEFORE INSERT ON Transportadora
FOR EACH ROW
BEGIN
    IF ((SELECT count(codcidade) FROM Cidade where codcidade = NEW.Cidade_codcidade) = 0) THEN
    INSERT INTO Cidade (codcidade,
                        cidade,
                        uf)
    VALUES (NEW.Cidade_codcidade,
            'CADASTRAR',
            'CADASTRAR');
   END IF;
END;

Browser other questions tagged

You are not signed in. Login or sign up in order to post.