データベース関係の変更カンペ
現場で共有してもらっているカンペから抜粋。
HibernateとかS2DaoなどのO/Rマッピングフレームワークや、SQLの自動生成をしてくれるフレームワーク/ライブラリを使わない(つまりSQLを手書きする)場合には以下の点に注意。
- insert SQLは必ず列を指定する。 insert into hoge(col1,col2,col3) values... という具合
- あとで NOT NULL かつ DEFAULT指定がない列を追加する場合は insert 系を見直す必要がある
- insert文で列名を指定していないのであれば確実にエラーになるはず
- select * from する場面において ResultSetからの取り出しを数値インデックスで指定してはいけない
- 列の順番が変更される可能性がある (insertの例を参照)
かなり低水準(いろんな意味で)な話ですが、まだまだこの手のノウハウは役立ちます。