Ich habe an einem Projekt gearbeitet, bei dem die Unterstützung zahlreicher Datenbanken, darunter mindestens Access, SQL Server und Oracle, eine absolute Notwendigkeit war.
Ich weiß also, dass es machbar ist. Die meisten DMLs (SELECT, UPDATE, INSERT...) sind gleich, und wir hatten keine großen Probleme, sie in allen Datenbanken zum Laufen zu bringen - nur gelegentliches Ärgernis. MySQL war damals die Ausnahme, da es einfach nicht leistungsfähig genug war.
Die meisten Unterschiede fanden wir in der DDL, aber mit der richtigen Architektur (die wir hatten) war es nicht schwer, diese zu beheben.
Das Einzige, was uns Probleme bereitet hat, war die Generierung eindeutiger IDs - Autoinkrement ist kein Standard. Glücklicherweise gab es in einer Datenbank mit etwa 40 Tabellen nur wenige Stellen, an denen eindeutige IDs erforderlich waren (gutes DB-Design). Letztendlich generieren wir die eindeutige ID im Code und behandeln alle Konflikte (alles in Transaktionen).
Es hat die Dinge einfacher gemacht, weil wir es vermieden hatten, Autoinkrement für ID-Felder zu verwenden, es ist schwieriger, an eindeutige Schlüssel zu denken - aber auf lange Sicht besser.