24 lines
707 B
PL/PgSQL
24 lines
707 B
PL/PgSQL
|
|
drop table if exists usage_metrics;
|
|
CREATE TABLE usage_metrics (
|
|
registered_users int,
|
|
users_with_address int,
|
|
change_timestamp timestamp without time zone
|
|
DEFAULT timezone('utc'::text, now()));
|
|
|
|
drop function if exists store_usage_metrics() cascade;
|
|
CREATE OR REPLACE FUNCTION store_usage_metrics() RETURNS TRIGGER AS $usage_metrics$
|
|
BEGIN
|
|
insert into usage_metrics (registered_users, users_with_address)
|
|
values ((select count(*) from users),
|
|
(select count(*) from users
|
|
where address is not null));
|
|
|
|
return null;
|
|
END;
|
|
$usage_metrics$ LANGUAGE plpgsql;
|
|
|
|
CREATE TRIGGER usage_metrics
|
|
AFTER INSERT OR UPDATE OR DELETE ON users
|
|
execute PROCEDURE store_usage_metrics();
|