正确认识MySQL对服务器端光标的限制

从MySQL 5.0.2开始,通过mysql_stmt_attr_set() C API函数实现了服务器端光标。服务器端光标允许在服务器端生成结果集,但不会将其传输到客户端,除非客户端请求这些行。例如,如果客户端执行了查询,但仅对第1行感兴趣,那么不会传输剩余的行。

光标是只读的,不能使用光标来更新行。

未实施UPDATE WHERE CURRENT OF和DELETE WHERE CURRENT OF,这是因为不支持可更新的光标。

光标是不可保持的(提交后不再保持打开)。

光标是不敏感的。

光标是不可滚动的。

光标是未命名的。语句处理程序起着光标ID的作用。

对于每条预处理语句,仅能打开1个光标。如果需要多个光标,必须处理多条语句。

如果在预处理模式下不支持语句,不能在生成结果集的语句上使用光标。包括CHECK TABLES、HANDLER READ和SHOW BINLOG EVENTS语句。