CREATE DEFINER=`root`@`%` PROCEDURE `updateWorker303`()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE rosterid VARCHAR(50);
DECLARE phone VARCHAR(50);
DECLARE workStats VARCHAR(50);
DECLARE cur1 CURSOR FOR SELECT F_Id,F_Phone,F_WorkerStatus FROM ftb_personnels_staff_roster WHERE F_Id = F_UserId;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur1;
read_loop: LOOP
FETCH cur1 INTO rosterid, phone,workStats;
IF done THEN
LEAVE read_loop;
END IF;
IF EXISTS (
SELECT 1 FROM ftb_personnels_staff_registration_form_data
WHERE F_RosterId = rosterid AND F_FormFieldId = 'workerStatus'
) THEN
-- 更新记录
UPDATE ftb_personnels_staff_registration_form_data SET F_Phone = phone, F_Value = workStats WHERE F_RosterId = rosterid AND F_FormFieldId = 'workerStatus';
ELSE
-- 插入新记录
INSERT INTO ftb_personnels_staff_registration_form_data (F_Id, F_RosterId, F_Phone, F_FormTypeId, F_FormFieldId, F_Value)
VALUES (rosterid, rosterid, phone, '3', 'workerStatus', workStats);
END IF;
END LOOP;
CLOSE cur1;
END
DELIMITER $$
CREATE DEFINER=`root`@`%` PROCEDURE `updateWorker303`()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE rosterid VARCHAR(50);
DECLARE phone VARCHAR(50);
DECLARE workStats VARCHAR(50);
DECLARE cur1 CURSOR FOR SELECT F_Id,F_Phone,F_WorkerStatus FROM ftb_personnels_staff_roster WHERE F_Id = F_UserId;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur1;
read_loop: LOOP
FETCH cur1 INTO rosterid, phone,workStats;
IF done THEN
LEAVE read_loop;
END IF;
IF EXISTS (
SELECT 1 FROM ftb_personnels_staff_registration_form_data
WHERE F_RosterId = rosterid AND F_FormFieldId = 'workerStatus'
) THEN
-- 更新记录
UPDATE ftb_personnels_staff_registration_form_data SET F_Phone = phone, F_Value = workStats WHERE F_RosterId = rosterid AND F_FormFieldId = 'workerStatus';
ELSE
-- 插入新记录
INSERT INTO ftb_personnels_staff_registration_form_data (F_Id, F_RosterId, F_Phone, F_FormTypeId, F_FormFieldId, F_Value)
VALUES (rosterid, rosterid, phone, '3', 'workerStatus', workStats);
END IF;
END LOOP;
CLOSE cur1;
END$$
DELIMITER ;