【发布时间】:2026-01-24 03:35:01
【问题描述】:
我仍在尝试解决这个 Mysql 问题。我不是 dba,但需要弄清楚如何去做。
我需要对当前数据库中的所有 (50k) 个现有表运行一个 select 语句。 请注意,union 对我来说不是正确的方法,因为我有超过 50k 表,我需要用循环解决这个问题。
到目前为止,我一直在尝试两种方法,但均未成功:
首先:使用子查询和information_schemma like:
Select *
from
(SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema = 'my_db')
或
Select * from (show tables;);
第二:使用存储过程,如:
delimiter //
CREATE PROCEDURE get_all_tables()
BEGIN
DECLARE a varchar(100);
DECLARE cur1 CURSOR FOR SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'my_db';
OPEN cur1;
但两者都没有做我想做的事。
它会产生语法或概念错误。
顺便说一句:我已经使用外部 perl 脚本解决了这个问题,该脚本执行“显示表”并运行带有循环的选择。
这没关系,但我认为这应该用纯mysql来解决。
欢迎任何想法。
狮子座。
【问题讨论】:
-
在这里查看我的自我回答*.com/q/38693720