CREATE PROCEDURE `modify_customer`(
IN env VARCHAR(10)/*环境*/,
IN idcard VARCHAR(18)/*用户身份证号*/,
IN uname VARCHAR(20)/*用户姓名*/
)
BEGIN
/*
使用方式: CALL modify_customer('dev', '520111200001011111', '张三');
*/
IF env NOT IN ('dev', 'sit', 'sitl', 'uat', 'uatl') THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Invalid environment key';
END IF;
SET @id_card = idcard;
SET @username = uname;
/*定义db.table*/
SET @tb_user = CONCAT('sys_', env , '.user');
/*查询老用户名*/
SET @select_user_sql = CONCAT('select username into @old_uname from ', @tb_user, ' where id_card=? limit 1');
PREPARE stmt0 FROM @select_user_sql;
EXECUTE stmt0 USING @id_card;
DEALLOCATE PREPARE stmt0;
/*更新user表*/
SET @update_user_sql = CONCAT('update ', @tb_user, ' set username=? where id_card=?');
PREPARE stmt FROM @update_user_sql;
EXECUTE stmt USING @username,@id_card;
DEALLOCATE PREPARE stmt;
SELECT @id_card, @old_uname AS old_real_name, @username AS new_real_name;
END
06-18
2417
2417
06-12
2961
2961
11-18
2255
2255

被折叠的 条评论
为什么被折叠?



