|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在Windows中MySQL以服务形式存在,在使用前应确保此服务已经启动,未启动可用netstartmysql命令启动。而Linux中启动时可用“/etc/rc.d/init.d/mysqldstart"命令,注意启动者应具有管理员权限。
/************************************************
我与游标
/************************************************
利用显式游标
界说游标DECLARE
CURSORcursor_nameISselect_statement;
翻开游标OPEN
OPENcursor_name
提取游标FETCH
FETCHcursor_nameINTOvariable1,variable2,...;
封闭游标CLOSE
CLOSEcursor_name;
显式游标属性
%ISOPEN判别是不是已翻开翻开TRUE
%FOUND是不是从了局会合提取到了数据提取到TRUE
%NOTFOUND是不是从了局会合提取到了数据没有提取到TRUE
%ROWCOUNT前往到以后举动止已提取到的实践行数
参数游标
以完成利用分歧参数值屡次翻开游标时,能够天生分歧的了局集
CURSORcursor_name(parameter_namedatatype)ISselect_statement;
利用游标更新/删除数据
CURSORcursor_name(parameter_namedatatype)ISselect_statementFORUPDATE[OFcolumn_reference][NOWAIT];
FORUPDATE用于在了局集数据上加行共享锁,以避免其他用户再次行实行DML操纵
OF断定那些表要加锁
NOWAIT指定实行时不守候锁,假如其他会话已在被感化行上加锁,则以后会话显现毛病提醒
UPDATEtable_nameSETcolumn=..WHERECURRENTOFcursor_name;
DELETEtable_nameWHERECURRENTOFcursor_name;
游标轮回
Oracle会隐含地翻开游标,提取游标并封闭游标
FORrecord_nameINcursor_nameLOOP
statement1;
statement2;
...
ENDLOOP;
假如轮回时不必要利用任何游标属性,则可间接利用子查询
FORrecord_nameIN(select_statement)LOOP
statement1;
statement2;
...
ENDLOOP;
利用游标变量
界说REFCURSOR范例和游标变量
TYPEref_type_nameISREFCURSOR[RETURNreturn_type];
cursor_variableref_type_name;
翻开游标
OPENcursor_variableFORselect_statement;
提取游标数据
FETCHcursor_variableINTOvariable1,variable2,...;
封闭游标CLOSE
CLOSEcursor_variable
BlackHole黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继 |
|