CREATE PROCEDURE addCacrmUser ( ) BEGIN
DECLARE
error INTEGER DEFAULT 1;
DECLARE
existsFlag VARCHAR ( 255 ) DEFAULT "";
DECLARE
back_id VARCHAR ( 255 ) DEFAULT "";
DECLARE
ca_back_code VARCHAR ( 255 ) DEFAULT "";
DECLARE
back_type VARCHAR ( 255 ) DEFAULT "";
DECLARE
back_bottom_level VARCHAR ( 255 ) DEFAULT "";
DECLARE
back_four_level VARCHAR ( 255 ) DEFAULT "";
DECLARE
back_three_level VARCHAR ( 255 ) DEFAULT "";
DECLARE
back_two_level VARCHAR ( 255 ) DEFAULT "";
DECLARE
back_one_level VARCHAR ( 255 ) DEFAULT "";
DECLARE
CONTINUE HANDLER FOR SQLEXCEPTION
SET error =- 1;
START TRANSACTION;
DELETE
FROM
cacrm_ca_crm_user_helper
WHERE
job_code IN ( SELECT job_code FROM cacrm_ca_crm_user );
DELETE
FROM
cacrm_ca_crm_user_helper
WHERE
job_code = "";
SELECT
job_code INTO existsFlag
FROM
cacrm_ca_crm_user_helper
WHERE
back_code != ""
AND cacrm_ca_crm_user_helper.back_code NOT IN ( SELECT job_code FROM cacrm_ca_crm_user );
IF
existsFlag != "" THEN
SELECT
existsFlag;
SET error =- 1;
END IF;
SELECT
id,
four_level,
job_code,
type,
three_level,
two_level,
one_level INTO back_id,
back_four_level,
ca_back_code,
back_type,
back_three_level,
back_two_level,
back_one_level
FROM
cacrm_ca_crm_user
WHERE
job_code IN ( SELECT back_code FROM cacrm_ca_crm_user_helper );
UPDATE cacrm_ca_crm_user_helper
SET four_level = back_four_level,
three_level = back_three_level,
two_level = back_two_level,
one_level = one_level
WHERE
back_code = ca_back_code;
UPDATE cacrm_ca_crm_user_helper
SET back_type = ca_back_code
WHERE
back_code = back_code;
INSERT INTO cacrm_ca_crm_user ( `code`, `job_code`, `four_level`, three_level, two_level, one_level, state, source ) SELECT
`code`,
`job_code`,
`four_level`,
three_level,
two_level,
one_level,
state,
source
FROM
cacrm_ca_crm_user_helper
WHERE
cacrm_ca_crm_user.job_code = cacrm_ca_crm_user_helper.job_code;
IF
error = - 1 THEN
ROLLBACK;
ELSE COMMIT;
END IF;
SELECT
error,
existsFlag;
END;-- drop PROCEDURE if EXISTS addCacrmUser
-- CALL addCacrmUser
mysql 存儲過程
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.