ORACLEでAUTO_INCREMENT

CakePHPORACLEを使おうと思って最初につまずくのは、たぶんAUTO_INCREMENTカラムがないということ。


回避策は主にこの2種類。

  • sequence+triggerを利用
  • INSERT時にMAX(ID)+1をSELECTする

今回はsequence+triggerを利用する方を採用。
詳しくはこちら
オートナンバ機能の実現 - オラクル・Oracleをマスターするための基本と仕組み

これを採用する利点は、DB内で解決できるため他DB(特にMySQL)への移行が簡単になるということ。欠点は、DB管理の手間が増えるということ。


MySQLではあまり馴染みのないトリガーだと思いますが、非常に便利です。もちろん、多用は危険ですが。