数据库所有表包含该字段并为该字段赋值

Posted shianliang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库所有表包含该字段并为该字段赋值相关的知识,希望对你有一定的参考价值。

 

 

DROP PROCEDURE IF EXISTS init ;

delimiter $
CREATE PROCEDURE init( in my_database VARCHAR(200), in column_name VARCHAR(200), in my_new_value VARCHAR(200), in my_old_value VARCHAR(200))
BEGIN  
-- 定义变量 
declare table_name_str varchar(255);
declare done int;  
-- 创建游标,并存储数据  
declare class_group CURSOR for  
   SELECT ic.TABLE_NAME FROM information_schema.COLUMNS ic WHERE TABLE_SCHEMA = my_database AND ic.COLUMN_NAME = column_name;
-- 游标中的内容执行完后将done设置为1  
 DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
 
-- 打开游标  
open class_group;  
--  执行循环  
  posLoop:LOOP  
-- 判断是否结束循环  
        IF done = 1 THEN    
      LEAVE posLoop;  
    END IF;   
-- 取游标中的值  
    FETCH class_group into table_name_str;  
    SET @sql_text =CONCAT("UPDATE ",my_database, ".",table_name_str, " SET ", column_name, " = ", my_new_value, " WHERE ", column_name , " ", my_old_value, ";"); 
-- 执行更新操作
       PREPARE my_table FROM @sql_text;
       EXECUTE my_table;
       DROP PREPARE my_table;
--    SELECT table_name_str;
  END LOOP posLoop;  
CLOSE class_group; 
END $
-- 执行存储过程
CALL init(‘dev_b2csys‘,‘partner_id‘, "0", ‘IS NULL‘);

-- 删除
DROP PROCEDURE init;

  

以上是关于数据库所有表包含该字段并为该字段赋值的主要内容,如果未能解决你的问题,请参考以下文章

matlab中怎么定义结构体

如何在 graphQL 片段中定义可选字段以进行查询

matlab中如何看函数结构体中的数据

matlab怎样输出结构体数组

为该类别建立一个表,为具有相似字段的子类别建立另一个表,为啥?

第五课(基础)