<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="https://sandfox.me/assets/xml/atom.xsl" type="text/xsl media="all"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom">
  <title>Sand Fox (Posts about postgres)</title>
  <id>https://sandfox.me/tags/postgres.xml</id>
  <updated>2026-01-05T10:06:07Z</updated>
  <author>
    <name>Anton Smirnov</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://sandfox.me/tags/postgres.xml"/>
  <link rel="alternate" type="text/html" href="https://sandfox.me/tags/postgres.html"/>
  <generator uri="https://getnikola.com/">Nikola</generator>
  <entry>
    <title>Generating UUIDv7 in PostgreSQL 18</title>
    <id>https://sandfox.me/misc/pgsql-18-uuid-v7.html</id>
    <updated>2025-10-02T00:37:00+03:00</updated>
    <published>2025-10-02T00:37:00+03:00</published>
    <author>
      <name>Anton Smirnov</name>
    </author>
    <link rel="alternate" type="text/html" href="https://sandfox.me/misc/pgsql-18-uuid-v7.html"/>
    <summary type="html">&lt;p&gt;&lt;a class="reference external" href="https://sandfox.me/misc/pgsql-uuid-v7.html"&gt;Another post&lt;/a&gt; just turned from a useful algorithm to madskillz.
Since PostgreSQL 18 the method is just:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code sql"&gt;&lt;a id="rest_code_4e508138ff324ce581973ead89a56e9f-1" name="rest_code_4e508138ff324ce581973ead89a56e9f-1" href="https://sandfox.me/misc/pgsql-18-uuid-v7.html#rest_code_4e508138ff324ce581973ead89a56e9f-1"&gt;&lt;/a&gt;&lt;span class="k"&gt;select&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;uuidv7&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;</summary>
    <category term="postgres" label="postgres"/>
    <category term="sql" label="sql"/>
    <category term="uuid" label="uuid"/>
    <category term="uuidv7" label="uuidv7"/>
  </entry>
  <entry>
    <title>Generating UUIDv7 in PostgreSQL</title>
    <id>https://sandfox.me/misc/pgsql-uuid-v7.html</id>
    <updated>2025-10-02T00:43:00+03:00</updated>
    <published>2024-01-20T07:50:00+02:00</published>
    <author>
      <name>Anton Smirnov</name>
    </author>
    <link rel="alternate" type="text/html" href="https://sandfox.me/misc/pgsql-uuid-v7.html"/>
    <summary type="html">&lt;aside class="admonition note"&gt;
&lt;p class="admonition-title"&gt;Note&lt;/p&gt;
&lt;p&gt;Update: &lt;a class="reference external" href="https://sandfox.me/misc/pgsql-18-uuid-v7.html"&gt;PostgreSQL 18 added uuidv7() function.&lt;/a&gt;&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;But what about Postgres?
We can do it too.
Hopefully generators for new UUID versions will be added to uuid-ossp but it is not yet the case.&lt;/p&gt;
&lt;p&gt;The easiest way for now is to use pgcrypto, so let's start with that:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code sql"&gt;&lt;a id="rest_code_fbf1735ea24d47f89731257bc8f03efd-1" name="rest_code_fbf1735ea24d47f89731257bc8f03efd-1" href="https://sandfox.me/misc/pgsql-uuid-v7.html#rest_code_fbf1735ea24d47f89731257bc8f03efd-1"&gt;&lt;/a&gt;&lt;span class="k"&gt;create&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;extension&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;pgcrypto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Now port the solution from &lt;a class="reference external" href="https://sandfox.me/misc/mysql-uuid-v7.html"&gt;the MySQL post&lt;/a&gt;:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code sql"&gt;&lt;a id="rest_code_cd2c620983a04bd0a166042eb8951c71-1" name="rest_code_cd2c620983a04bd0a166042eb8951c71-1" href="https://sandfox.me/misc/pgsql-uuid-v7.html#rest_code_cd2c620983a04bd0a166042eb8951c71-1"&gt;&lt;/a&gt;&lt;span class="k"&gt;select&lt;/span&gt;
&lt;a id="rest_code_cd2c620983a04bd0a166042eb8951c71-2" name="rest_code_cd2c620983a04bd0a166042eb8951c71-2" href="https://sandfox.me/misc/pgsql-uuid-v7.html#rest_code_cd2c620983a04bd0a166042eb8951c71-2"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;lpad&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;to_hex&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="k"&gt;extract&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;epoch&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;now&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;)::&lt;/span&gt;&lt;span class="nb"&gt;bigint&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'12'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'0'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;
&lt;a id="rest_code_cd2c620983a04bd0a166042eb8951c71-3" name="rest_code_cd2c620983a04bd0a166042eb8951c71-3" href="https://sandfox.me/misc/pgsql-uuid-v7.html#rest_code_cd2c620983a04bd0a166042eb8951c71-3"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="s1"&gt;'7'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;-- version&lt;/span&gt;
&lt;a id="rest_code_cd2c620983a04bd0a166042eb8951c71-4" name="rest_code_cd2c620983a04bd0a166042eb8951c71-4" href="https://sandfox.me/misc/pgsql-uuid-v7.html#rest_code_cd2c620983a04bd0a166042eb8951c71-4"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;substr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;gen_random_bytes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'hex'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;
&lt;a id="rest_code_cd2c620983a04bd0a166042eb8951c71-5" name="rest_code_cd2c620983a04bd0a166042eb8951c71-5" href="https://sandfox.me/misc/pgsql-uuid-v7.html#rest_code_cd2c620983a04bd0a166042eb8951c71-5"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;to_hex&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;floor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;)::&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;-- variant bits&lt;/span&gt;
&lt;a id="rest_code_cd2c620983a04bd0a166042eb8951c71-6" name="rest_code_cd2c620983a04bd0a166042eb8951c71-6" href="https://sandfox.me/misc/pgsql-uuid-v7.html#rest_code_cd2c620983a04bd0a166042eb8951c71-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;substr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;gen_random_bytes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'hex'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_cd2c620983a04bd0a166042eb8951c71-7" name="rest_code_cd2c620983a04bd0a166042eb8951c71-7" href="https://sandfox.me/misc/pgsql-uuid-v7.html#rest_code_cd2c620983a04bd0a166042eb8951c71-7"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;uuid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Like with MariaDB, Postgres doesn't care about dashes on insertion,
so this value can be directly applied to a field with the uuid type.&lt;/p&gt;
&lt;p&gt;And again, to make it a formatted value, use a type cast:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code sql"&gt;&lt;a id="rest_code_4cfc6fa3655a48ab870a418b635978d0-1" name="rest_code_4cfc6fa3655a48ab870a418b635978d0-1" href="https://sandfox.me/misc/pgsql-uuid-v7.html#rest_code_4cfc6fa3655a48ab870a418b635978d0-1"&gt;&lt;/a&gt;&lt;span class="k"&gt;select&lt;/span&gt;
&lt;a id="rest_code_4cfc6fa3655a48ab870a418b635978d0-2" name="rest_code_4cfc6fa3655a48ab870a418b635978d0-2" href="https://sandfox.me/misc/pgsql-uuid-v7.html#rest_code_4cfc6fa3655a48ab870a418b635978d0-2"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lpad&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;to_hex&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="k"&gt;extract&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;epoch&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;now&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;)::&lt;/span&gt;&lt;span class="nb"&gt;bigint&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'12'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'0'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;
&lt;a id="rest_code_4cfc6fa3655a48ab870a418b635978d0-3" name="rest_code_4cfc6fa3655a48ab870a418b635978d0-3" href="https://sandfox.me/misc/pgsql-uuid-v7.html#rest_code_4cfc6fa3655a48ab870a418b635978d0-3"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="s1"&gt;'7'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;
&lt;a id="rest_code_4cfc6fa3655a48ab870a418b635978d0-4" name="rest_code_4cfc6fa3655a48ab870a418b635978d0-4" href="https://sandfox.me/misc/pgsql-uuid-v7.html#rest_code_4cfc6fa3655a48ab870a418b635978d0-4"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;substr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;gen_random_bytes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'hex'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;
&lt;a id="rest_code_4cfc6fa3655a48ab870a418b635978d0-5" name="rest_code_4cfc6fa3655a48ab870a418b635978d0-5" href="https://sandfox.me/misc/pgsql-uuid-v7.html#rest_code_4cfc6fa3655a48ab870a418b635978d0-5"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;to_hex&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;floor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;)::&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;
&lt;a id="rest_code_4cfc6fa3655a48ab870a418b635978d0-6" name="rest_code_4cfc6fa3655a48ab870a418b635978d0-6" href="https://sandfox.me/misc/pgsql-uuid-v7.html#rest_code_4cfc6fa3655a48ab870a418b635978d0-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;substr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;gen_random_bytes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'hex'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;))::&lt;/span&gt;&lt;span class="n"&gt;uuid&lt;/span&gt;
&lt;a id="rest_code_4cfc6fa3655a48ab870a418b635978d0-7" name="rest_code_4cfc6fa3655a48ab870a418b635978d0-7" href="https://sandfox.me/misc/pgsql-uuid-v7.html#rest_code_4cfc6fa3655a48ab870a418b635978d0-7"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;uuid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;And to have a bytea value, use decode:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code sql"&gt;&lt;a id="rest_code_2e74ad5bb73d412e871a7dd02df2d831-1" name="rest_code_2e74ad5bb73d412e871a7dd02df2d831-1" href="https://sandfox.me/misc/pgsql-uuid-v7.html#rest_code_2e74ad5bb73d412e871a7dd02df2d831-1"&gt;&lt;/a&gt;&lt;span class="k"&gt;select&lt;/span&gt;
&lt;a id="rest_code_2e74ad5bb73d412e871a7dd02df2d831-2" name="rest_code_2e74ad5bb73d412e871a7dd02df2d831-2" href="https://sandfox.me/misc/pgsql-uuid-v7.html#rest_code_2e74ad5bb73d412e871a7dd02df2d831-2"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;decode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;a id="rest_code_2e74ad5bb73d412e871a7dd02df2d831-3" name="rest_code_2e74ad5bb73d412e871a7dd02df2d831-3" href="https://sandfox.me/misc/pgsql-uuid-v7.html#rest_code_2e74ad5bb73d412e871a7dd02df2d831-3"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;lpad&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;to_hex&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="k"&gt;extract&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;epoch&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;now&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;)::&lt;/span&gt;&lt;span class="nb"&gt;bigint&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'12'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'0'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;
&lt;a id="rest_code_2e74ad5bb73d412e871a7dd02df2d831-4" name="rest_code_2e74ad5bb73d412e871a7dd02df2d831-4" href="https://sandfox.me/misc/pgsql-uuid-v7.html#rest_code_2e74ad5bb73d412e871a7dd02df2d831-4"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="s1"&gt;'7'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;
&lt;a id="rest_code_2e74ad5bb73d412e871a7dd02df2d831-5" name="rest_code_2e74ad5bb73d412e871a7dd02df2d831-5" href="https://sandfox.me/misc/pgsql-uuid-v7.html#rest_code_2e74ad5bb73d412e871a7dd02df2d831-5"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;substr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;gen_random_bytes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'hex'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;
&lt;a id="rest_code_2e74ad5bb73d412e871a7dd02df2d831-6" name="rest_code_2e74ad5bb73d412e871a7dd02df2d831-6" href="https://sandfox.me/misc/pgsql-uuid-v7.html#rest_code_2e74ad5bb73d412e871a7dd02df2d831-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;to_hex&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;floor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;)::&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;
&lt;a id="rest_code_2e74ad5bb73d412e871a7dd02df2d831-7" name="rest_code_2e74ad5bb73d412e871a7dd02df2d831-7" href="https://sandfox.me/misc/pgsql-uuid-v7.html#rest_code_2e74ad5bb73d412e871a7dd02df2d831-7"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;substr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;gen_random_bytes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'hex'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;a id="rest_code_2e74ad5bb73d412e871a7dd02df2d831-8" name="rest_code_2e74ad5bb73d412e871a7dd02df2d831-8" href="https://sandfox.me/misc/pgsql-uuid-v7.html#rest_code_2e74ad5bb73d412e871a7dd02df2d831-8"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="s1"&gt;'hex'&lt;/span&gt;
&lt;a id="rest_code_2e74ad5bb73d412e871a7dd02df2d831-9" name="rest_code_2e74ad5bb73d412e871a7dd02df2d831-9" href="https://sandfox.me/misc/pgsql-uuid-v7.html#rest_code_2e74ad5bb73d412e871a7dd02df2d831-9"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;uuid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;</summary>
    <category term="postgres" label="postgres"/>
    <category term="sql" label="sql"/>
    <category term="uuid" label="uuid"/>
    <category term="uuidv7" label="uuidv7"/>
  </entry>
</feed>
