mysql 存儲過程動態傳遞參數
阿新 • • 發佈:2018-11-21
tid ins student proc name replace creat script spa
delimiter // create procedure oneKey(in newName varchar(250),in oldName varchar(250),in idNum INT) BEGIN SET @sqlStmt = CONCAT(‘insert into ‘,newName,‘ (`name`,`age`,`sex`,`major`,`pass`,`photo`) select `name`,`age`,`sex`,`major`,`pass`,`photo` from ‘,oldName,‘ where id = ‘,idNum); PREPARE stmt FROM @sqlStmt; EXECUTE stmt; END; // delimiter ; call oneKey(‘stu1‘,‘student‘,5);
自己模仿著,然後成功的完成了數據庫名的動態替換:
CREATE DEFINER=`pnggu`@`%` PROCEDURE `district_to_db`(IN city_id int ( 20 ), IN basedb_city VARCHAR ( 255 )) BEGIN -- 參數說明:city_id:城市id; -- basedb_city 需要傳遞到的業務數據庫名稱 -- REPLACE INTO basedb_sh.district ( TID, STATUS, DistrictName, DistrictFullName, DescriptionDate )-- select -- id as TID, -- 0 as STATUS, -- full_name as DistrictName, -- full_name as DistrictFullName, -- NOW() as DescriptionDate -- from python3.district where parent_id = ‘310100‘; SET @sqlStmt = CONCAT(‘REPLACE INTO ‘,basedb_city,‘ .district(`TID`,`STATUS`,`DistrictName`,`DistrictFullName`,`DescriptionDate`) select `id` as TID,0 as STATUS,`full_name` as DistrictName,`full_name` as DistrictFullName,NOW() as DescriptionDate from python3.district where parent_id = ‘,city_id); PREPARE stmt FROM @sqlStmt; EXECUTE stmt; END
mysql 存儲過程動態傳遞參數