てぃぐれのプログラマwiki

ワクワクに従う

シーケンスとシノニム【ORACLE】

知らなかったシーケンスの使い方

シーケンスなんてORACLEを使ってる人からすれば、なんてことはない、連番を採番するオブジェクトだ。SQL SERVERのidentityのような動きをする。

しかし、別々のテーブルの主キーに使い、IDを被らせないという方法ができるのだ。あまり使う用途はないと思うけど。たまに考えたりする時がある。

AレポートテーブルとBレポートテーブルがあり、その履歴みたいなものを管理するときに、それぞれのIDを持つとかぶることがあるからなーというときに使えそう。なんかアンチパターンっぽい気もするが。

 

シノニム

昔よくシノニム作ってたなー。

あまりなんで使っていたのか覚えてないかど、権限絡みである。

別のユーザー(スキーマー)からの操作を管理するために作っていた。

 

知らなかったシノニムの使い方として、AテーブルにinsertするSQLがあり、とある日からBテーブルにしたいというとき、A に Cというシノニムをつけておいて、とある日から BにCというシノニムを付け替えれば、テーブル内容が同じであれば、SQLを書き換える必要がないのである。