数据库可移植性是一个伟大的目标,对于标准甚至中等复杂的业务应用程序来说是完全可以实现的。
实际上,有两个主要问题:
1)一些数据库(Oracle)有非标准的DDL,尤其是数据类型。这可以通过搜索和替换轻松转换。
2) ID/主键生成必须是可移植的;这排除了序列和自动生成的列。改用分配器表,它可以完全便携并且性能显着提高。
使用持久层(例如 Hibernate)有助于隔离一些其他差异。即使是大型和复杂的应用程序,我也取得了非常好的成功,这些应用程序来自一个重大的迁移和重新设计项目,可以从 Oracle 移植到 MySQL。