--- Title: 'HerokuのPostgreSQLでuuid-oospを使う #heroku #postgresql' Keywords: - heroku - postgresql Author: hiro_y Web: 'https://mimemo.io/m/3kyw8o3EB46Lrg7' --- HerokuのPostgreSQLでは[uuid-oosp](https://www.postgresql.org/docs/current/static/uuid-ossp.html)が使える。 - [Extensions, PostGIS, and Full Text Search Dictionaries on Heroku Postgres | Heroku Dev Center](https://devcenter.heroku.com/articles/heroku-postgres-extensions-postgis-full-text-search) - [Announcing Support for 16 new Postgres Extensions | Heroku](https://blog.heroku.com/announcing_support_for_17_new_postgres_extensions_including_dblink) - [PostgreSQL: Documentation: 9.5: uuid-ossp](https://www.postgresql.org/docs/current/static/uuid-ossp.html) - [PostgreSQL: Documentation: 9.5: UUID Type](https://www.postgresql.org/docs/current/static/datatype-uuid.html) `create extension`で有効にすると ```sql create extension "uuid-ossp"; ``` `uuid_generate_v4`などの関数が使えるようになる(v1とかはまず使わないよなあ)。 `INSERT`文でデータ新規作成時に使うこともできるし、`UPDATE`文で行ごとに別々の値を`SET uuid_row = uuid_generate_v4()`のように設定もできる。 あとはテーブル定義で列の初期値にすることもできる(`DEFAULT uuid_generate_v4()`みたいな感じで)。 ただPostgreSQL独自の機能なので、アプリのポータビリティを考えたらアプリ側でUUIDの値は作るようにした方がいいのかな、と。一律でバッチ処理やDB操作でUUIDの値を挿入しないといけない場合に、SQLだけで済ませられるのは便利。