Dblink postgres
Jump to navigation
Jump to search
https://dbaclass.com/article/how-to-create-database-link-in-postgres/
create users in function via dblink
create role tester1 with superuser login password 'tester1';
create database tester1 owner tester1;
dblink_connect('hostaddr=127.0.0.1 port=5432 dbname=tester1 user=tester1 password=tester1');
CREATE USER dblinkuser WITH PASSWORD 'dblinkuser';
https://stackoverflow.com/questions/4386118/create-database-using-a-stored-function
CREATE OR REPLACE FUNCTION create_unique_db()
RETURNS TEXT AS $$
DECLARE
_db TEXT := (SELECT 'u' || REPLACE((SELECT gen_random_uuid()::TEXT), '-', ''));
BEGIN
IF EXISTS (SELECT 1 FROM pg_database WHERE datname = _db) THEN
RAISE NOTICE 'Database already exists';
ELSE
EXECUTE FORMAT('CREATE ROLE %s',_db);
-- PERFORM dblink_exec('dbname=' || current_database() -- current db
-- , 'CREATE DATABASE ' || quote_ident(dbname));
PERFORM dblink_exec('create database foothee');
-- EXECUTE FORMAT('CREATE DATABASE %s OWNER %s',_db, _db);
END IF;
RETURN _db;
END;
$$ LANGUAGE plpgsql;