文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  伺服器端游標的限制

15.6.6.5 伺服器端游標的限制

伺服器端游標是在 C API 中使用 mysql_stmt_attr_set() 函數實作的。相同的實作也用於儲存程序中的游標。伺服器端游標允許在伺服器端產生結果集,但除了用戶端請求的那些列之外,不會傳輸到用戶端。例如,如果用戶端執行查詢,但只對第一列感興趣,則不會傳輸剩餘的列。

在 MySQL 中,伺服器端游標會被具體化為一個內部暫存表。最初,這是一個 MEMORY 表,但當其大小超過 max_heap_table_sizetmp_table_size 系統變數的最小值時,會轉換為 MyISAM 表。與其他內部暫存表的使用一樣,用於保存游標結果集的內部暫存表也適用相同的限制。請參閱第 10.4.4 節,“MySQL 中內部暫存表的使用”。實作的一個限制是,對於大型結果集,通過游標檢索其列可能會很慢。

游標是唯讀的;您不能使用游標更新列。

由於不支援可更新的游標,因此未實作 UPDATE WHERE CURRENT OFDELETE WHERE CURRENT OF

游標是不可保留的(在提交後不會保持開啟)。

游標是無感的。

游標是不可捲動的。

游標沒有命名。陳述式處理常式充當游標 ID。

每個預處理陳述式只能開啟一個游標。如果需要多個游標,則必須預處理多個陳述式。

如果陳述式在預處理模式中不受支援,則不能將游標用於產生結果集的陳述式。這包括諸如 CHECK TABLEHANDLER READSHOW BINLOG EVENTS 等陳述式。