1. 程式人生 > >Mysql 批量修改欄位儲存過程

Mysql 批量修改欄位儲存過程

-- 刪除batchUpdateColumn
DROP PROCEDURE IF EXISTS batchUpdateColumn;
-- 建立batchUpdateColumn
CREATE PROCEDURE batchUpdateColumn(IN tableName varchar(64),IN oldType varchar(64), IN newType varchar(64))  
  BEGIN
-- 定義變數,遊標
DECLARE tn varchar(64);
DECLARE cn varchar(64);
DECLARE done INT;
-- 定義結果集,查出表名與欄位
      DECLARE rs CURSOR FOR (SELECT TABLE_NAME as tn,COLUMN_NAME as cn FROM INFORMATION_SCHEMA.columns WHERE TABLE_SCHEMA = tableName AND COLUMN_TYPE = oldType);
      DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
      OPEN rs;  
-- 開始迴圈
read_loop: LOOP
FETCH  NEXT from rs INTO tn,cn;
            IF done THEN
                LEAVE read_loop;
             END IF;
-- 拼接修改欄位sql
SET @tempsql = CONCAT('ALTER TABLE ',tn,' MODIFY COLUMN ',cn,' ', newType);
-- 執行sql
PREPARE stmt FROM @tempsql; 
EXECUTE stmt; 
DEALLOCATE PREPARE stmt;
END LOOP;
      CLOSE rs;
 END;


-- 呼叫儲存過程
call batchUpdateColumn('lyf','varchar(10)','varchar(30)');

相關推薦

Mysql 批量修改儲存過程

-- 刪除batchUpdateColumn DROP PROCEDURE IF EXISTS batchUpdateColumn; -- 建立batchUpdateColumn CREATE PROCEDURE batchUpdateColumn(IN tableNam

批量修改資料 要根據主鍵Id 批量修改Value的值 且 value 的值是不一樣。

批量修改資料 要根據主鍵Id 批量修改欄位Value的值 且 value 的值是不一樣。 UPDATE gold_chip set chip_money_win=(case     when chip_id = 1 then 1    

mysql批量更改排序規則

在information_schema資料庫中執行,生成批量sql#批量更改欄位排序規則SELECT CONCAT('ALTER TABLE `', table_name, '` MODIFY `',

sql語句批量修改

語法說明:1:待匹配的字串  2:正則表示式  3:替換的字元  4:起始位置(預設從1開始)  5:替換的次數(0表示無限次)   6:取值範圍(i:大小寫不敏感    c:大小寫敏感(預設)  n:不匹配換行符號   m:多行模式  x:擴充套件模式,忽略正則表示式中的空白符)

mysql批量修改的值

sql語句一直停留在最最基本的增刪改查水平,遇到一個批量更改資料庫某欄位的值的需求,通過查閱資料積累下來吧。 需求是把sex為'1'的資料的headpicture改為'1.png',sex為'0'的資

mysql 在表中新加修改

新增欄位 在某個欄位之後新加一個欄位: ALTER TABEL xxx ADD column_name VARCHAR(64) NOT NULL DEFAULT '' COMMENT '' AFTER xxx; 修改欄位 ALTER TABEL xxx MODIFY co

資料庫工作筆記010---Mysql中用SQL增加、刪除修改名、型別、註釋,調整順序總結

  JAVA技術交流QQ群:170933152   Mysql中用SQL增加、刪除欄位,修改欄位名、欄位型別、註釋,調整欄位順序總結   在網站重構中,通常會進行資料結構的修改,所以新增,刪除,增加mysql表的欄位是難免的,有時為了方便,還會增加

mysqlMySQL新增修改

MySQL新增欄位的方法並不複雜,下面將為您詳細介紹MYSQL新增欄位和修改欄位等操作的實現方法,希望對您學習MySQL新增欄位方面會有所幫助。 1新增表字段 alter table table1 add transactor varchar(10) not Null

MySQL新增修改

1新增表字段 alter table table1 add transactor varchar(10) not Null; alter table table1 add id int unsigned not Null auto_increment primary ke

Mysql 修改預設值

環境描述: MySQL 5.7.13 問題描述: 建表的時候,users_info表的role_id欄位沒有預設值,後期發現註冊的時候,需要提供給使用者一個預設角色,也就是給role_id欄位一個預設值。 當前users_info表的role_id 在建立表的時候,

Mysql 升級到5.7修改報錯 datetime 型別報錯

原因是Mysql5.7以上版本不支援無效日期時間欄位,例如 0000-00-00 00:00:00; 解決方法有兩種: 1:把date 或 datetime 型別值為 0000-00-00 的欄位,改成 1970-01-01 2:修改欄位預設值為空 程式碼示例: ALTER TA

mysql 中modify和change區別(以及使用modify修改名稱報錯)

使用modify修改欄位報錯如下: mysql> alter table student modify name sname char(16);ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that

mysql修改長度(sql命令)

alter table news  modify column title varchar(130); alter table 表名 modify column 欄位名 型別; 如:news 表裡的title  欄位 原來長度是 100個字元,現長度要改成130個字元

記錄:Mysql 修改長度、修改列名、新增列、修改自增主鍵起始值

以下轉自https://www.cnblogs.com/yangjinwang/p/5918906.html alter table 表名 modify column 欄位名 型別; 例如 資料庫中user表 name欄位是varchar(30) 可以用 alter tab

MySql表、、庫的字符集修改及檢視方法

原文連結:http://www.jb51.net/article/68856.htm修改資料庫字符集:複製程式碼程式碼如下:ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];  

Mysql 資料庫 表 字符集修改

修改資料庫字符集 alter database owl default character set utf8; 修改表字符集 alter table t_app character set utf8; 修改單個欄位字符集 alter table t_app modify a

Mysql修改修改表操作

當我們需要針對mysql的表名或者欄位名需要修改的時候,這個時候就需要用到mysql的alter命令。 為了方便起見,首先我們新建一張使用者表。 create table user( `id` INT NOT NULL AUTO_INCREMENT, `

mysql 儲存多個值 ,判斷一個值是否在其中

表C_file,其中有個欄位是spile,他存的是字元形式,例如:1,2,10,11 C_file ID     spile 1      2,10,11 2      2,3,20,22 3      1,6,8 4      5,6,1,9 SQL:   select

解決SQL SERVER 2008資料庫表中修改後不能儲存的問題

1.找到工具》選項》Designers》表設計器和資料庫設計器 2.然後將“阻止儲存要求重新建立表的更改” 的這一項的鉤鉤去掉就OK了  原文地址:http://www.bitscn.com/pdb/mssql/201411/405016.html

Mysql中用SQL增加、刪除修改名、型別、註釋,調整順序總結

在網站重構中,通常會進行資料結構的修改,所以新增,刪除,增加mysql表的欄位是難免的,有時為了方便,還會增加修改表或欄位的註釋,把同欄位屬性調整到一塊兒。這些操作可以在phpmyadmin或者別的mysql管理工具中完成,但是我們有時為了更方便的管理,會選擇寫