【发布时间】:2020-07-08 02:18:36
【问题描述】:
例如,我的数据库中有 11 个表。要查看表格的详细信息,我必须执行 11 次 select * from table_name 并固定相应的选项卡。有什么方法可以编写一个查询来返回数据库中所有表中的所有数据。
【问题讨论】:
-
什么 MySQL 版本?
-
版本:8.0.19
标签: mysql database mysql-workbench
例如,我的数据库中有 11 个表。要查看表格的详细信息,我必须执行 11 次 select * from table_name 并固定相应的选项卡。有什么方法可以编写一个查询来返回数据库中所有表中的所有数据。
【问题讨论】:
标签: mysql database mysql-workbench
遗憾的是,我不认为您可以在一个单一查询中单独返回每个表中的所有数据,而无需将所有表合并在一起或执行某种连接。
【讨论】:
您可以像这样转储所有表(示例仅包括两个表,foo 和 bar):
with recursive rownum (rownum) as (
select 1
union all
select rownum+1 from rownum
where rownum < greatest(
(select count(*) from foo),
(select count(*) from bar)
)
)
select foo_rows.*, bar_rows.*
from rownum
left join (
select row_number() over () foo_row, foo.* from foo
) foo_rows on foo_row=rownum
left join(
select row_number() over () bar_row, bar.* from bar
) bar_rows on bar_row=rownum;
【讨论】: