mysql2sqlite icon indicating copy to clipboard operation
mysql2sqlite copied to clipboard

Converting trigger -- Parse error near near "IF"

Open macias opened this issue 2 years ago • 3 comments

I have several triggers which in MySQL dump look like this:

DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `check_zero_prefs` BEFORE INSERT ON `lang_prefs` FOR EACH ROW
BEGIN
  IF (NEW.size=0 AND NEW.other_size=0) THEN
    SIGNAL SQLSTATE '45003' SET MESSAGE_TEXT = 'BOTH_SIZES_ZERO';
  END IF;
END */;;
DELIMITER ;

After conversion:

CREATE TRIGGER `check_zero_prefs` BEFORE INSERT ON `lang_prefs` FOR EACH ROW
BEGIN
  IF (NEW.size=0 AND NEW.other_size=0) THEN
    SIGNAL SQLSTATE '45003' SET MESSAGE_TEXT = 'BOTH_SIZES_ZERO';
  END IF;
END ;;

When trying to use the entire SQL script sqlite3 shows an error:

Parse error near line 40: near "IF": syntax error
  EFORE INSERT ON `lang_prefs` FOR EACH ROW BEGIN   IF (NEW.size=0 AND NEW.other
                                      error here ---^

macias avatar Jun 26 '23 15:06 macias