我有一个Firebird数据库(v。2.5),由于失去支持,不允许我在数据库中创建过程, View 或表。

我的观点太长了:

Too many Contexts of Relation/Procedure/Views. Maximum allowed is 255

我想我可以通过创建GTT来解决此问题,对吗?

我的问题是,此GTT将存储在数据库中吗? GTT何时删除?我尝试了数据库副本并创建了GTT,此后,我关闭了连接并重新连接,GTT已经存在。我的GTT是否属于数据库中的主表?

最佳答案

global temporary table的定义是持久性的(这就是为什么它被称为全局而不是本地的)。全局临时表中的数据仅对填充它的事务(on commit delete rows)或填充它的连接(on commit preserve rows)可见。当事务结束或连接关闭时,数据将被删除

因此,一旦创建,全局临时表的定义将一直存在于数据库中,直到被删除。

我不能说这是否违反了您与软件供应商之间的协议(protocol)。您需要问他们。

09-03 19:38