在mysql數(shù)據(jù)庫中,當(dāng)需要對多張表進(jìn)行相同操作的時候,我們一般會使用循環(huán)來實(shí)現(xiàn)。下面我們就來介紹如何在mysql中循環(huán)每張表。
-- 首先獲取數(shù)據(jù)庫中所有表的表名 SELECT table_name FROM information_schema.tables WHERE table_schema='your_database_name'; -- 然后將表名保存到一個臨時表中 CREATE TEMPORARY TABLE table_names (table_name VARCHAR(50)); INSERT INTO table_names SELECT table_name FROM information_schema.tables WHERE table_schema='your_database_name'; -- 開始循環(huán)每張表 SET @rownum = 0; SELECT COUNT(*) INTO @table_count FROM table_names; WHILE @rownum< @table_count DO SET @rownum = @rownum + 1; SELECT table_name INTO @current_table_name FROM table_names LIMIT @rownum, 1; -- 在這里寫需要執(zhí)行的代碼,例如: SELECT COUNT(*) AS count FROM @current_table_name; END WHILE; -- 最后記得刪除臨時表 DROP TABLE table_names;
上面的代碼中,我們首先使用SELECT語句獲取數(shù)據(jù)庫中所有表的表名,并將表名保存到一個臨時表中。然后使用WHILE循環(huán)每張表,并在循環(huán)中執(zhí)行需要執(zhí)行的代碼,例如獲取每張表的行數(shù)。循環(huán)結(jié)束后,記得刪除臨時表。