Specifying Default Isolation Level

The database isolation level specifies the degree to which your program is isolated from the concurrent actions of other programs. Starting with Informix server version 15.0.1.x, you can specify the default isolation level while creating a database using the 'ISOLATION' option in the CREATE DATABASE statement.

The following example creates a database that does not use transaction logging and with isolation level 'READ COMMITTED':
CREATE DATABASE isoleveldb ISOLATION READ COMMITTED;

Isolation level mentioned in the CREATE DATABASE statement specifies the default isolation level for the newly created and opened database and uses the SQL standard isolation level names i. e. READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, and SERIALIZABLE. The SET ISOLATION statement is unchanged and uses the Informix isolation levels. The SET TRANSACTION ISOLATION LEVEL statement is also unchanged and it continues to use the ISO (SQL) standard isolation level names.

If you do not specify the isolation level in the CREATE DATABASE statement, the default isolation level will be same as before, i.e. DIRTY READ or READ UNCOMMITTED for an unlogged database, SERIALIZABLE or REPEATABLE READ for a mode ANSI database, and READ COMMITTED for a logged database (BUFFERED or UNBUFFERED). You can not change the isolation level for an unlogged database; it has to be DIRTY READ or READ UNCOMMITTED.