handler语句概述

handler类似于select语句,但又不同于后者,它只能每次查询1次记录。handler有一些特殊的功能,适用于一些特定的场景。本文介绍handler语句相关的一些知识,以便后用。

联系方式

微信公众号

(微信公众号每日定期分享 欢迎大家关注)

微信

培训课件

(收费20元已共享到百度云盘便于同学们获取)

目录

handler语句官方手册

handler语句语法

handler语句示例

handler语句适用场景

handler语句注意事项

handler语句官方手册

13SQLStatementSyntax13.2DataManipulationStatements13.2.4HANDLERSyntaxhandler语句语法

HANDLERtbl_nameOPEN[[AS]alias]HANDLERtbl_nameREADindex_name{=|<=|>=|<|>}(value1,value2,...)[WHEREwhere_condition][LIMIT...]HANDLERtbl_nameREADindex_name{FIRST|NEXT|PREV|LAST}[WHEREwhere_condition][LIMIT...]HANDLERtbl_nameREAD{FIRST|NEXT}[WHEREwhere_condition][LIMIT...]HANDLERtbl_nameCLOSEhandler语句示例

为handle指定一个别名用于使用多个handle

HANDLERtbl_nameOPEN[[AS]alias]

mysql>handlert_table_lockopenp1;QueryOK,0rowsaffected(0.00sec)

打开表和关闭表

HANDLERtbl_nameOPEN[[AS]alias]HANDLERtbl_nameCLOSE

mysql>handlert_table_lockopen;QueryOK,0rowsaffected(0.00sec)mysql>showopentablesfromzxydblike't_table_lock';+----------+--------------+--------+-------------+|Database|Table|In_use|Name_locked|+----------+--------------+--------+-------------+|zxydb|t_table_lock|1|0|+----------+--------------+--------+-------------+1rowinset(0.00sec)mysql>handlert_table_lockclose;QueryOK,0rowsaffected(0.00sec)##mysql>showopentablesfromzxydblike't_table_lock';+----------+--------------+--------+-------------+|Database|Table|In_use|Name_locked|+----------+--------------+--------+-------------+|zxydb|t_table_lock|0|0|+----------+--------------+--------+-------------+1rowinset(0.00sec)

读取表的记录

HANDLERtbl_nameREAD{FIRST|NEXT}[WHEREwhere_condition][LIMIT...]

##获取表第1条记录mysql>handlert_table_lockreadfirst;+------+------+|a|b|+------+------+|1|1|+------+------+1rowinset(0.00sec)##获取表的下一条记录mysql>handlert_table_lockreadnext;Emptyset(0.00sec)

获取指定索引值的表记录

HANDLERtbl_nameREADindex_name{=|<=|>=|<|>}(value1,value2,...)[WHEREwhere_condition][LIMIT...]

mysql>handlert_table_lockreadidx_a=(1);+------+------+|a|b|+------+------+|1|1|+------+------+1rowinset(0.00sec)##mysql>handlert_table_lockreadidx_a=(2);Emptyset(0.00sec)

获取指定索引的第一,下一,前一,最后的表记录

HANDLERtbl_nameREADindex_name{FIRST|NEXT|PREV|LAST}[WHEREwhere_condition][LIMIT...]

##mysql>handlert_table_lockreadidx_afirst;+------+------+|a|b|+------+------+|1|1|+------+------+1rowinset(0.00sec)##mysql>handlert_table_lockreadidx_anext;Emptyset(0.00sec)##mysql>handlert_table_lockreadidx_alast;+------+------+|a|b|+------+------+|1|1|+------+------+1rowinset(0.00sec)##mysql>handlert_table_lockreadidx_aprev;Emptyset(0.00sec)handler语句适用场景

handler语句注意事项