Back to posts

OracleのDB,結構変だな

現場参画で、Oracleを使うことになったので、備忘録。

Oracleでは、複数レコードを入れる時に

INSERT ALL ... SELECT 1 FROM dual;

という「お決まりの型」を使う。

なぜ SELECT 1 FROM dual が必要なのか

なんかINSERT ALLのそういう決まりらしい。
調べたら理由が書いてあった気がするけど忘れた。

トランザクション管理もデフォでついてくるので、実行中にエラーなどがあれば、自動でロールバックしてくれるらしい。

しかし、聞いたところ、Oracleは普通にcommit や rollbackという機能があり、普通にINSERT文を大量にこしらえてコピペして、何か問題があっても

commitで確定するまではrollbackでいつでも取り消せるらしい。

oracleって便利なんだなーと思っていたら、大体のDBには標準でついてますよとChatGPTに鼻で笑われてしまった。

おかしいな、研修で習ってないぞ。

git ではcommit機能などは使ったけど、DBでも用意されてるんだなーと学びがありました。