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

版权声明:转载请注明出处~ https://blog.csdn.net/seven_north/article/details/84031709
一 令人窒息的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();

引用博客

三 我还没找到第三种方法

猜你喜欢

转载自blog.csdn.net/seven_north/article/details/84031709