mysql【同資料庫的多表同欄位操作】
阿新 • • 發佈:2018-11-20
一 令人窒息的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();