最近、Spring Boot × Dockerで開発をしています。
本日のお題はGeneratedValueです。
GeneratedValueとは
プライマリキー値を生成する方法を指定する属性である。
GeneratedValueは4つの種類が存在する。
- AUTO : データベースごとに異なる方法を選択
- IDENTITY : テーブルのidentity列を利用
- SEQUENCE : シーケンスオブジェクトを使用
- TABLE : 主キー値を保持しておくためのテーブルを使用
である。
それぞれはDMBSによって動向が変わってくる。
IDENTITY
PostgreSQL : SERIAL
MySQL : AUTO_INCREMENT
Oracle : サポートなし
SEQUENCE
PostgreSQL : sequenceName
MySQL : サポートなし
Oracle : シーケンスオブジェクト
TABLE
何れも対応している。
AUTO
PostgreSQL : hibernate_sequence
MySQL : AUTO_INCREMENT
Oracle : hibernate_sequence