Я пытаюсь запустить несколько операторов вставки на основе условия в phpmyadmin через хранимую процедуру. Я не могу запустить более двух операторов вставки через хранимую процедуру, он игнорирует другие операторы и выполняет только первые два, я не понимаю, что вызывает проблему. Я размещаю здесь свой код.
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `BULKINSERT`()
BEGIN
DECLARE company_id,department_id BIGINT;
SELECT id INTO company_id FROM COMPANIES WHERE Name="Company 1" ;
IF company_id is null THEN
INSERT INTO companies(Name) VALUES("Company 1") ;
SET company_id=LAST_INSERT_ID() ;
END IF ;
SELECT id INTO department_id FROM DEPARTMENTS WHERE Name="Support 1" ;
IF department_id IS NULL THEN
INSERT INTO DEPARTMENTS(Name,company_id) VALUES("Support 1",company_id) ;
SET department_id=LAST_INSERT_ID() ;
END IF ;
SELECT id INTO department_id FROM DEPARTMENTS WHERE Name="Finance" ;
IF department_id IS NULL THEN
INSERT INTO DEPARTMENTS(Name,company_id) VALUES("Finance",company_id) ;
SET department_id=LAST_INSERT_ID() ;
END IF ;
SELECT id INTO department_id FROM DEPARTMENTS WHERE Name="Digital" ;
IF department_id IS NULL THEN
INSERT INTO DEPARTMENTS(Name,company_id) VALUES("Digital",company_id) ;
SET department_id=LAST_INSERT_ID() ;
END IF ;
SELECT id INTO department_id FROM DEPARTMENTS WHERE Name="BI TEST" ;
IF department_id IS NULL THEN
INSERT INTO DEPARTMENTS(Name,company_id) VALUES("BI TEST",company_id) ;
SET department_id=LAST_INSERT_ID() ;
END IF ;
END $$
DELIMITER ;
В приведенном выше коде обновляются только первая компания «Компания 1» и первый отдел «Поддержка 1». После этого контроль прекращается. Я не понимаю, почему это происходит. Есть ли какие-либо ограничения на выполнение запросов в хранимой процедуре MYSQL?
Заранее спасибо,
Amar