ORACLEでAUTO_INCREMENT
CakePHPでORACLEを使おうと思って最初につまずくのは、たぶんAUTO_INCREMENTカラムがないということ。
回避策は主にこの2種類。
- sequence+triggerを利用
- INSERT時にMAX(ID)+1をSELECTする
今回はsequence+triggerを利用する方を採用。
詳しくはこちら
オートナンバ機能の実現 - オラクル・Oracleをマスターするための基本と仕組み
これを採用する利点は、DB内で解決できるため他DB(特にMySQL)への移行が簡単になるということ。欠点は、DB管理の手間が増えるということ。
MySQLではあまり馴染みのないトリガーだと思いますが、非常に便利です。もちろん、多用は危険ですが。