Skip to content

Instantly share code, notes, and snippets.

@daspn-dock
Created June 15, 2022 20:30
Show Gist options
  • Save daspn-dock/9cceb69d0addeb7b6ffd1ebcdd995d20 to your computer and use it in GitHub Desktop.
Save daspn-dock/9cceb69d0addeb7b6ffd1ebcdd995d20 to your computer and use it in GitHub Desktop.
PostgreSQL function to generate an unique ID of type ULID
CREATE EXTENSION IF NOT EXISTS pgcrypto;
CREATE OR REPLACE FUNCTION generate_ulid() RETURNS uuid
AS $$
SELECT (lpad(to_hex(floor(extract(epoch FROM clock_timestamp()) * 1000)::bigint), 12, '0') || encode(gen_random_bytes(10), 'hex'))::uuid;
$$ LANGUAGE SQL;
@daspn-dock
Copy link
Author

daspn-dock commented Jun 15, 2022

-- creating a simple table
CREATE TABLE ulid_keys(id UUID primary key default generate_ulid());

-- inserting some data
INSERT INTO ulid_keys(id)
SELECT generate_ulid() FROM generate_series(1, 1000);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment