【dbts2024 レポート】使い慣れたSQLに潜む実装依存
こんにちは、プロダクト開発部本部 田上です。db tech showcase 2024 2日目のB13のセッションである「使い慣れたSQLに潜む実装依存」のレポートをお届けします。
セッション概要
セッション内容まとめ
実行したSQL文とその結果に関する各データベースエンジンごとの差異を、3つの区分(構文、関数、データ型と演算子)に分けて説明されていました。
例1(構文):トランザクション処理の挙動の差異
主キー制約違反が発生するSQL文について、PostgreSQLはトランザクション全体をロールバックする一方、Oracle Database、MySQL、SQL Server、SQLiteはエラーが発生してもトランザクション全体をコミットする。
例2(関数):関数CURRENT_TIMESTAMPの差異
Oracle Database、PostgreSQL、Spannerはタイムゾーン情報を含み、MySQL、SQL Server、SQLiteはタイムゾーン情報を含まない形式で返すという差異がある。
聴講した感想
アプリケーションの実装者として、以下のような感想を持ちました。
実装が特定のDBのデータ形式(例:タイムスタンプ)に依存している場合、DB移行時に互換性の問題が発生する可能性がある。
移行先のデータベースエンジンが特定のSQL構文や機能をサポートしていない場合、アプリケーションのコードを修正する必要が生じる。
開発者がDBエンジンの挙動の違いを十分に理解していない場合、コード中で予期しないバグが発生する可能性がある。
アーカイブ動画配信のご案内
db tech showcase 2024は、期間限定でアーカイブ動画を配信中です。
本イベントのセッションをオンラインでご視聴いただけるほか、講演資料のダウンロードも可能です。継続公開が決まったdb tech showcase 2023のセッション動画も含め、約130本の動画を自由に見ていただけます。
※一部対象外セッションあり