服务器端游标使用限制
服务器端可以调用 C API 中的 mysql_stmt_attr_set() 函数实现游标功能,但具有一定的使用限制。
服务器端游标 允许在服务器端生成结果集,但是只将结果集中客户端请求的行传输到客户端。例如,如果客户端执行的查询只想获取第一行数据,则其余的行不会传输到客户端。
此外游标还具有如下使用限制:
-
游标具有只读性,不能使用游标更新行,因此未支持
UPDATE WHERE CURRENT OF和DELETE WHERE CURRENT OF。 -
游标具有不可保持性,即在提交后不保持打开状态。
-
游标具有不敏感性。
-
游标具有不可回滚性。
-
游标不能被命名,使用语句句柄获取游标 ID。
-
每个 Prepared 语句只能打开一个游标。游标数量与 Prepared 语句数量一致。
-
如果在 Prepared 模式下不支持生成结果集的语句,则不能对该语句使用游标。这包括
CHECK TABLE、HANDLER READ和SHOW BINLOG EVENTS等语句。