有没有办法将隔离级别和锁定模式更改为整个数据库?
答案 0 :(得分:2)
如果您使用的是版本11或更高版本:是
您可以使用 public.sysdbopen 过程来执行此操作。
当用户连接到数据库时,将执行此过程。 如果某些用户已经拥有自己的sysdbopen过程,那么请注意,不会执行公共“版本”,只会执行自己的用户。
create procedure "public".sysdbopen()
set isolation to dirty read ;
set lock mode to not wait;
end procedure
;
答案 1 :(得分:0)
Informix中没有每个数据库的隔离级别和锁定模式的概念。 两者都是数据库客户端属性所以这取决于您的客户端库或工具。 例如,对于squirrel客户端描述,请访问:How to Automatically Execute a Command on Connection。 对于Odbc,您可以在“环境”选项卡中的DSN属性中设置隔离级别。
唯一的通用方法是由ceinmart提供。在Informix 11及更高版本中,只要建立连接,就会执行sysdbopen存储过程。它是设置隔离级别和锁定模式的理想场所。但是,此存储过程是一个“每个Informix引擎实例”,而不是“每个数据库”。您需要在那里添加一些逻辑:从dbinfo读取数据库名称,然后有条件地应用设置。