· 4 years ago · Feb 12, 2021, 10:40 AM
1CREATE TABLE IF NOT EXISTS cnt (ns TEXT NOT NULL, cnt BIGINT NOT NULL, PRIMARY KEY (ns));
2
3CREATE OR REPLACE FUNCTION next_counter(IN namespace TEXT, OUT val BIGINT) AS $$
4BEGIN
5 INSERT INTO cnt (ns, cnt) VALUES (namespace, 1) ON CONFLICT(ns) DO UPDATE SET cnt = cnt.cnt + 1 RETURNING cnt into val;
6end;
7$$ LANGUAGE plpgsql;
8