Firebird选择不存在的列

时间:2018-03-15 09:00:44

标签: orm firebird

无论如何可以在Firebird中为不存在的列返回NULL值吗? 假设您有一个ORM框架并希望支持多个数据库版本,其中存在或不存在某些表列。 所以如果一个列不存在,是否可以返回NULL值?

1 个答案:

答案 0 :(得分:1)

Firebird本身没有任何东西可以让你这样做。从不存在的列中进行选择是一个错误,并且有充分的理由。

为了允许这样的东西,你需要让你的ORM支持这个并让它根据底层的表结构重写查询,这不是一件容易的事情,而且还有一个非常不寻常的要求。或者,您应该考虑使用不同数据库版本的实现编写API,并根据底层数据库选择正确的实现。

但唯一真实可行的解决方案是让您的应用程序拒绝使用错误的数据库版本(例如,如果db版本太高),或者使其自动升级结构(例如,如果db版本太低了。)