mysql批量修改某庫中某字段的值

DELIMITER $$ ---mysql中必須要加這玩意兒
drop PROCEDURE if EXISTS NewProc;
CREATE DEFINER = CURRENT_USER PROCEDURE `NewProc`()
BEGIN
            -----定義變變量
		    declare tableName varchar(200) default '';
		    declare columnName varchar(200) default '';
			declare done int default 0;
            ----創建一個遊標
				declare cur cursor for  SELECT table_name as tableName,COLUMN_NAME as columnName FROM INFORMATION_SCHEMA. COLUMNS WHERE TABLE_SCHEMA = 'ems_db' and data_type = 'varchar';
				declare continue HANDLER for not found set done = 1;
				open cur;
				
											posLoop:LOOP
										
											IF done=1 THEN  
												LEAVE posLoop;
											END IF; 
									
										FETCH  cur into tableName,columnName;
										
										set @tableNames = CONCAT(tableName);
										set @columnNames = CONCAT(columnName);
			                        ----定義一個變量方便下面用prepare
										set @sqlStr = CONCAT("update ",@tableNames," set ",@columnNames," ='銘德.觀瀾府' ",' where ',@columnNames," = '德能.渝貴佳苑'");
									 
										
										prepare stmt from @sqlStr;
						           ---執行SQL
										execute stmt;
								
										deallocate prepare stmt;

										END LOOP posLoop;

			 CLOSE cur;

END $$

DELIMITER ;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章