こんにちは。ビーグルソフトの真鍋です。
前回のUUID生成と同じくPostgresでUUIDを生成したくなったので調べてみました。実際にはRDS上のPostgresを利用しているので参考にしてみてください。
バージョン情報
=> SELECT version(); version ---------------------------------------------------------------------------------------------------------- PostgreSQL 9.6.10 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-9), 64-bit (1 row)
生成方法
UUIDをPostgresで生成するにはpgcrypto
が必要になります。
そのためあらかじめExtensionがインストールされていることを確認します。
=> SELECT * FROM pg_available_extensions WHERE name = 'pgcrypto'; name | default_version | installed_version | comment ----------+-----------------+-------------------+------------------------- pgcrypto | 1.3 | 1.3 | cryptographic functions (1 row)
今回はすでにインストールされていますが、インストールするには以下のSQLを実行します。
=> CREATE EXTENSION if not exists pgcrypto; NOTICE: extension "pgcrypto" already exists, skipping CREATE EXTENSION
以下の通りgen_random_uuid
を実行するとuuidのバージョン4を生成してくれます。
=> select gen_random_uuid(); gen_random_uuid -------------------------------------- e61de8d7-2822-4544-9c92-4ce89f667396 (1 row)
[改訂新版]内部構造から学ぶPostgreSQL 設計・運用計画の鉄則 (Software Design plus)
- 作者: 勝俣智成,佐伯昌樹,原田登志
- 出版社/メーカー: 技術評論社
- 発売日: 2018/09/14
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る