skip to Main Content

I wrote the following code

DELIMITER $$

CREATE TRIGGER bm_keuangan 
AFTER UPDATE ON pembayaran_project FOR EACH ROW
BEGIN
DECLARE nama_project varchar(100);
DECLARE cek_di_keuangan varchar(100);
IF (!(isnull(NEW.deleted_at))) THEN
    UPDATE keuangan SET keuangan.deleted_at = now() WHERE keuangan.ref = NEW.id AND keuangan.jk_id = 5;
ELSE

END IF;

END $$
DELIMITER ;

And I got error :

#1064 – You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘END IF;

END’ at line 10

2

Answers


  1. Your ELSE block is empty, this is not allowed in mysql. You should remove the keyword ELSE from your code, as follows :

    DELIMITER $$
    
    CREATE TRIGGER bm_keuangan 
    AFTER UPDATE ON pembayaran_project FOR EACH ROW
    BEGIN
    DECLARE nama_project varchar(100);
    DECLARE cek_di_keuangan varchar(100);
    IF (!(isnull(NEW.deleted_at))) THEN
        UPDATE keuangan SET keuangan.deleted_at = now() WHERE keuangan.ref = NEW.id AND keuangan.jk_id = 5;
    
    END IF;
    
    END $$
    DELIMITER ;
    
    Login or Signup to reply.
  2. From docs (emphasis mine):

    IF search_condition THEN statement_list
        [ELSEIF search_condition THEN statement_list] ...
        [ELSE statement_list]
    END IF
    

    Each statement_list consists of one or more SQL statements; an empty statement_list is not permitted.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search