SQL 接続のデータベースに依存しないテスト クエリ
データベース接続プーリング ライブラリには、多くの場合、SQL 接続のアイドル状態をテストする機能が含まれています。ただし、「SELECT 1;」などの推奨されるテスト クエリの多くは特定のデータベースに固有であり、他のデータベースでは失敗する可能性があります。
真にデータベースに依存しないテスト クエリはありますか?
残念ながら、すべての SQL で機能する単一のクエリはありません。
データベース固有のクエリ
包括的なアプローチが必要な場合は、異なるデータベース プロバイダーに合わせた複数のクエリの使用を検討してください:
- MySQL、H2、PostgreSQL、SQLite、Hive: SELECT 1
-
Oracle: SELECT 1 FROM DUAL
-
HSQLDB: SELECT 1 FROM any_existing_table WHERE 1=0
SELECT 1 FROM INFORMATION_SCHEMA.SYSTEM_USERS
電話するNOW()
-
Apache Derby: VALUES 1 または SELECT 1 FROM SYSIBM.SYSDUMMY1
-
DB2: SELECT 1 FROM SYSIBM.SYSDUMMY1
-
Informix: systables から count(*) を選択
注:
- HSQLDB で WHERE 1=0 を使用する場合は、必ず行を返すようにしてください。 Apache Commons DBCP の validationQuery の場合。
- データベース プロバイダーの構成に基づいて適切なクエリを決定して実行するには、プログラミング手法の使用を検討してください。
以上が本当にデータベースに依存しない SQL 接続テスト クエリはありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。