日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql fetch next from_MySql 存储过程 动态sql

發布時間:2023/12/19 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql fetch next from_MySql 存储过程 动态sql 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

將從表中查出的數據作為表名,對其進行操作

根據查出來的表名,將該表的數據全部插入到一個總表

CREATE DEFINER=`root`@`%` PROCEDURE `InsertIntoBrief`()

BEGIN

DECLARE table_name varchar(64);

-- 遍歷數據結束標志

DECLARE done INT DEFAULT FALSE;

DECLARE cur_table CURSOR FOR select table_id from yp_table_mapping;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

truncate yp_brief;

OPEN cur_table;

-- 開始遍歷

read_loop: LOOP

-- 賦值

FETCH NEXT from cur_table INTO table_name;

IF done THEN

LEAVE read_loop;

END IF;

set @s = concat("insert into yp_brief select * from ",table_name);

PREPARE s from @s;

EXECUTE s;

END LOOP;

CLOSE cur_table;

END

遍歷所有表,判斷是否存在某個字段,存在則修改該字段屬性

CREATE DEFINER=`root`@`%` PROCEDURE `changeColumnName`()

BEGIN

DECLARE table_name varchar(64);

-- 遍歷數據結束標志

DECLARE done INT DEFAULT FALSE;

-- 游標

DECLARE cur_table CURSOR FOR select table_id from yp_table_mapping;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

TRUNCATE yp_brief;

-- 打開游標

OPEN cur_table;

read_loop: LOOP

FETCH NEXT from cur_table INTO table_name;

IF done THEN

LEAVE read_loop;

END IF;

if EXISTS(SELECT * FROM information_schema.columns WHERE table_schema = 'database_name' AND table_name = table_name AND column_name = 'a') then

-- 修改字段名稱

set @s = concat("ALTER TABLE ",table_name," CHANGE a b varchar(255)");

PREPARE s from @s;

EXECUTE s;

END IF;

END LOOP;

CLOSE cur_table;

END

總結

以上是生活随笔為你收集整理的mysql fetch next from_MySql 存储过程 动态sql的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。