mysql【同数据库的多表同字段操作】

  • Post author:
  • Post category:mysql




一 令人窒息的CONCAT(str1,str2,…)


我只蹭蹭不进去

更新

SELECT CONCAT(‘update ‘,table_name,’ set 字段名= 值; ‘) FROM information_schema.tables WHERE table_schema=‘数据库名称’;

删除

SELECT CONCAT(‘delete table ‘,table_name,’ ; ‘) FROM information_schema.tables WHERE table_schema=‘数据库名称’;

copy 一下查询结果,直接复制回去



二 在 【一】 的基础上执行循环
DROP  PROCEDURE IF  EXISTS procedure_drop_table;

CREATE PROCEDURE procedure_drop_table()
BEGIN
  DECLARE DB_NAME varchar(50) DEFAULT "testcase";  -- 测试数据库的名称
  DECLARE done INT DEFAULT 0;
  DECLARE tableName varchar(50);  -- 测试库表明
  DECLARE cmd varchar(50);        -- 执行命令
  DECLARE sur CURSOR              -- 游标
  FOR 
  SELECT table_name FROM information_schema.TABLES WHERE table_schema=DB_NAME; 
  DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
 
  OPEN sur;
  REPEAT
    FETCH sur INTO tableName;
    IF NOT done THEN 
       set cmd=concat('DROP TABLE ',DB_NAME,'.',tableName);   -- 拼接删除命令 
        SET @E=cmd; 
        PREPARE stmt FROM @E; 
          EXECUTE stmt;  
         DEALLOCATE PREPARE stmt;  
    END IF;
  UNTIL done END REPEAT;
  CLOSE sur;
END

call procedure_drop_table();


引用博客



三 我还没找到第三种方法



版权声明:本文为seven_north原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。