Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 创建数据库 » 使用事务和隔离级别 » 隔离级别和一致性 » 典型的不一致类型

 

游标不稳定性

另一种重要的不一致是游标不稳定性。存在这种不一致时,一个事务可以修改正由另一事务的游标所引用的行。游标稳定性可以确保使用游标的应用程序不会导致数据库中的数据出现不一致。

示例

事务 A 使用游标读取了一行。事务 B 修改并提交了该行。在不知道该行已被修改的情况下,事务 A 对其进行了修改。

消除游标不稳定性

SQL Anywhere 在隔离级别 1、2 和 3 上提供了游标稳定性。游标稳定性可以确保任何其它事务都不能对游标的当前行中包含的信息进行修改。游标的一行中的信息可能是一个特定表中所包含的信息的副本,也可能是多个表的不同行中的数据的组合。只要在 SELECT 语句中使用了连接或子选择,就可能会涉及多个表。

有关 SQL 编程过程与游标的信息,请参见使用过程、触发器和批处理

只有在通过另一个应用程序使用 SQL Anywhere 时,才会使用游标。有关详细信息,请参见在应用程序中使用 SQL

对于使用游标的应用程序,需要考虑的一个相关但又独特的问题是,应用程序是否可以看到对基础数据的更改。通过指定游标的敏感性,可以控制应用程序能看到哪些更改。

有关游标敏感性的详细信息,请参见SQL Anywhere 游标