Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sql trigger with if then else construction [closed]

Tags:

sql

postgresql

Thera is trigger in PostgreSQL 8.4:

 CREATE OR REPLACE FUNCTION updateMarkers()
  RETURNS trigger AS
  $$
  BEGIN
IF NEW.status='Новый' THEN
    UPDATE markers SET statusId=0;
    RETURN NEW;
ELSE IF NEW.status='В работе' THEN
    UPDATE markers SET statusId=2;
    RETURN NEW;
ELSE IF NEW.status='Завершен' THEN
    UPDATE markers SET statusId=3;
    RETURN NEW;
ESLE
    UPDATE markers SET statusId=4;
    RETURN NEW;
END IF;
END;
$$
LANGUAGE plpgsql;

And i get syntax error in ESLE line.
Whats can be wrong?

like image 935
Kliver Max Avatar asked Sep 14 '26 17:09

Kliver Max


1 Answers

You have written ESLE instead of ELSE.... Your new query should be like this:

CREATE OR REPLACE FUNCTION updateMarkers()
  RETURNS trigger AS
  $$
  BEGIN
IF NEW.status='Новый' THEN
    UPDATE markers SET statusId=0;
    RETURN NEW;
ELSEIF NEW.status='В работе' THEN
    UPDATE markers SET statusId=2;
    RETURN NEW;
ELSEIF NEW.status='Завершен' THEN
    UPDATE markers SET statusId=3;
    RETURN NEW;
ELSE
    UPDATE markers SET statusId=4;
    RETURN NEW;
END IF;
END;
$$
LANGUAGE plpgsql;

@edit: ELSE IF need to be together:ELSEIF

like image 181
Akash KC Avatar answered Sep 18 '26 00:09

Akash KC



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!