FOR READ ONLY 子句
请使用 FOR READ ONLY 关键字来指定为 SELECT 语句声明了的 Select 游标是只读游标。 只
读游标是不可修改数据的游标。此部分提供关于 FOR READ ONLY 子句的下列信息:
您何时必须使用 FOR READ ONLY 子句
对于使用 FOR READ ONLY 子句的 SELECT 语句的语法限制
以只读方式使用 FOR READ ONLY 子句
通常,您无需在 SELECT 语句中包括 FOR READ ONLY 子句。根据定义,SELECT 是只读操
作,因此 FOR READ ONLY 子句通常是没有必要的。然而,在某些环境下,您必须在 SELECT
语句中包括 FOR READ ONLY 关键字。
在符合 ANSI 的数据库中,在缺省情况下,Select 游标是 update 游标。update 游标是可用来修
改数据的游标。这些 update 游标与数据库的只读方式是不兼容的。例如,针对 customer_ansi
表的此 SELECT 语句失败:
EXEC SQL declare ansi_curs cursor for
select * from customer_ansi;
解决方法是在您的 Select 游标中包括 FOR READ ONLY 子句。此子句指定的只读游标与数据库
的只读模式相兼容。例如,下列针对 customer_ansi 表的 SELECT FOR READ ONLY 语句成
功:
EXEC SQL declare ansi_read cursor for
select * from customer_ansi for read only;
DB-Access 以 Select 游标执行所有的 SELECT 语句,因此,您必须在所有访问只读的符合 ANSI
的数据库中数据的查询中指定 FOR READ ONLY。FOR READ ONLY 子句导致 DB-Access 将
SELECT 语句的游标声明为只读游标。
要获取更多关于 0 级备份的信息,请参阅 GBase 8s 备份与恢复指南。要获取关于 Select 游标、
只读游标和 update 游标的信息,请参阅 DECLARE 语句。
与 FOR READ ONLY 子句不兼容的语法
如果您尝试在同一 SELECT 语句中包括 FOR READ ONLY 子句和 FOR UPDATE 子句,则该
SELECT 语句失败。要获取关于为不包括 FOR READ ONLY 子句的 SELECT 语句声明只读游标
的信息,请参阅 DECLARE 语句。