CREATE PROCEDURE upd_edit_type_indian () BEGIN DECLARE done INT DEFAULT 0; DECLARE a, b, c INT; DECLARE d CHAR(1); DECLARE curs0 CURSOR FOR select news_id, indian_etype, inde_order, to_stt from old_news; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1; OPEN curs0; REPEAT FETCH curs0 INTO a, d, b, c; IF NOT done THEN IF d = '1' THEN INSERT INTO news_edition ( edition_master_id, edition_subsection_id, news_id, rank ) VALUES (2, 4, a, b); END IF; IF d = '2' THEN INSERT INTO news_edition ( edition_master_id, edition_subsection_id, news_id, rank ) VALUES (2, 5, a, b); END IF IF d = 0 AND c = 1 THEN INSERT INTO news_edition ( edition_master_id, edition_subsection_id, news_id) VALUES (2, 6, a); END IF; END IF; UNTIL done END REPEAT; CLOSE curs0; END =========== I am getting error: ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF (d = 0 AND c = 1) THEN INSERT INTO news_edition ( edition_master_' at line 18