私は、少なくとも Access、SQL Server、および Oracle を含む多くのデータベースをサポートすることが絶対条件である 1 つのプロジェクトに取り組みました。
だから私はそれができることを知っています。ほとんどの DML (SELECT、UPDATE、INSERT...) は同じであり、確かに、すべてのデータベースで動作させるのに大きな問題はありませんでした。当時、MySQL は十分な機能を備えていなかったため、例外でした。
ほとんどの違いは DDL に見られましたが、適切なアーキテクチャ (私たちが持っていたもの) があれば、これを修正するのは難しくありませんでした。
問題を引き起こした唯一のことは、一意の ID を生成することでした。自動インクリメントは標準ではありません。幸いなことに、約 40 のテーブルからなるデータベースでは、一意の ID が必要な場所はわずかしかありませんでした (適切な DB 設計)。最後に、コードで一意の ID を生成し、衝突 (トランザクション内のすべて) を処理します。
ID フィールドに自動インクリメントを使用することを避けていたので、作業は簡単になりました。一意のキーを考えるのは難しくなりましたが、長期的には改善されました。