Berikut
cara membuat dan mengetahui semua rows yang ada dalam table,
khususnya semua table yang ada didalam database tertentu.
1. Masuk kedalam
database yang diinginkan
root@rizky:~# su
- postgres
postgres@rizky:~$
psql -p 5432 -d postgres -U postgres -c "CREATE
DATABASE TEST;"
postgres@rizky:~$
psql -p 5432 -d test
psql (9.3.4)
Type "help"
for help.
test=#
2. Jalankan perintah
create function di dalam database yang diinginkan.
test=# create
function
cnt_rows(schema
text, tablename text) returns integer
as
$body$
declare
result integer;
query varchar;
begin
query := 'SELECT count(1) FROM ' || schema || '.' || tablename;
execute query into result;
return result;
end;
$body$
language
plpgsql;
3. Jika sudah
terbuat, coba lakukan select dengan query dibawah ini
test=#select
table_schema,
table_name,
cnt_rows(table_schema, table_name)
from
information_schema.tables
where
table_schema not in ('pg_catalog', 'information_schema')
and table_type='BASE TABLE'
order
by 3 desc;
table_schema |
table_name | cnt_rows
--------------+------------+----------
public |
company2 | 2
public |
company | 1
(2 rows)
test=#
#perlu
diperhatikan, function dibuat dan berlaku hanya di database yg
memiliki function ini. diluar dari yg tidak memiliki function ini
tidak akan bisa melakukan query select untuk mengecek semua rows
dengan menggunakan perintah ini. melainkan gunakan perintah union.
Adapun
perintah dengan menggunakan union adalah:
root@rizky:~#
su – postgres
postgres@rizky:~$
psql -p 5432 -d test -U postgres -c "select
count(1) from company union all select count(1) from company2;"
count
-------
1
2
(2
rows)
postgres@rizky:~$
Terima
Kasih

Comments
Post a Comment