現場参画で、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でも用意されてるんだなーと学びがありました。