您不可在没有日志记录的数据库中设置事务隔离级别。在无日志的数据库中的每一检索都作为 Read Uncommitted 发生。
在 BYTE 或 TEXT 数据的检索期间获取的数据可有所不同,这依赖于事务隔离级别。在 Read Uncommitted 或 Read Committed 隔离级别之下,允许进程读取
BYTE 或 TEXT 列,该列或是删除了的(如果该删除尚未提交的话)或正在删除过程中。在这些隔离级别之下,当存在某些条件时,应用可读取删除的 BYTE 或 TEXT
列。要了解关于这些条件的信息,请参阅 GBase 8s 管理员指南。
在
GBase 8s ESQL/C
中,如果您在事务中使用滚动游标,则可或通过设置隔离级别为 Serializable
或通过锁定整个表来强制您的临时表与数据库表之间的一致性。然而,持有滚动游标不可保证两表之间有相同的一致性。当事务完成时,释放通过 Serializable
设置的表级锁,在该事务的结束之外持有的滚动游标保持打开。一旦事务结束,您就可修改释放的行,因此在临时表中检索的数据可能与实际数据不一致。
Warning: 请不要在事务内使用无日志记录的表。如果您需要在事务内使用无日志记录的表,请或设置隔离级别为 Repeatable
Read,或在排他模式下锁定该表来防止并发问题。