--建立函式
create or replace function public.querytablerecord(dbname varchar(300), schema_prefix varchar(300))
returns "pg_catalog"."void" as $body$
declare
schemaqueryrec record;
tablequeryrec record;
querysql varchar(900);
insertsql varchar(300);
tmpsql varchar(300);
begin
--1.建立臨時表
drop table if exists public.tmp_big_table_record;
create table public.tmp_big_table_record(
schemaname varchar(300),
tablename varchar(300),
rowcount numeric(19)
);insertsql := 'insert into public.tmp_big_table_record ';
--2.生成各schema的查詢指令碼
for schemaqueryrec in
select
'select ''select ''''' || schema_name || ''''','''''' || tablename || '''''' , count(*) from '' || schemaname || ''.'' || tablename || '' union all'' as ssql from pg_tables where schemaname = ''' || schema_name || '''' as query_sql
from
information_schema.schemata
where
catalog_name = dbname
and schema_name like schema_prefix || '%' loop
querysql := schemaqueryrec.query_sql;
--列印每個模式的查詢指令碼到控制台
raise notice 'notice: %', querysql;
for tablequeryrec in execute querysql loop
--如果查詢結果為空,則不處理
if length(tablequeryrec.ssql) > 0 then
--去除最後乙個union all
tmpsql := substring(tablequeryrec.ssql, 1, length(tablequeryrec.ssql) - 9);
--拼接insert語句
tmpsql := insertsql || tmpsql;
--執行指令碼
execute tmpsql;
end if;
end loop;
end loop;
raise notice 'job done!!!';
end$body$
language 'plpgsql' volatile
;alter function public.querytablerecord(dbname varchar(300), schema_prefix varchar(300)) owner to artbase;
--執行函式
select public.querytablerecord('fb09', 'db_');
--檢視結果
select * from public.tmp_big_table_record order by rowcount desc;
--刪除臨時表
drop table public.tmp_big_table_record;
oracle查詢所有表的記錄數
方法一 select t.table name,t.num rows from all tables t 檢視記錄數,但是num rows不是實時的,儲存的是上次分析後的值,不準確,要使用該方法,必須分析後才可以使用。方法二 1 建立函式 create orreplace function coun...
MySQL 查詢資料庫 資料表總記錄數
information schema資料庫是mysql系統自帶的資料庫,它提供了資料庫元資料的訪問方式。information schema就記錄了資料庫當中大部分基本的資訊,比如字符集,許可權相關,資料庫實體物件資訊,外檢約束,分割槽,壓縮表,表資訊,索引資訊,引數,優化,鎖和事物等等。通過inf...
MSSQL 如何高效查詢表的總記錄數
如何高效查詢表的總記錄數?總結 整理 馬克 首先想到的自然是在表主鍵上應用count函式來查詢了,這個是目前使用最多的方法,沒有之一 select count 1 rows from product 這裡再給出一些其它方法,這些方法或多或少會有一些限制,或者看起來不是那麼 完美 但依然有一定的借鑑意...