第八十一章 SQL命令 UNLOCK
文章目录
- 第八十一章 SQL命令 UNLOCK
- 大纲
- 参数
- 描述
- 权限
- Nonexistent Table
- 示例
第八十一章 SQL命令 UNLOCK
解锁表
大纲
UNLOCK [TABLE] tablename IN EXCLUSIVE MODE [IMMEDIATE]UNLOCK [TABLE] tablename IN SHARE MODE [IMMEDIATE]
参数
tablename
- 要解锁的表的名称。
Tablename
必须是已经存在的表。
表名可以是限定的(schema.table
),也可以是非限定的(table
)。
非限定表名接受默认模式名。
模式搜索路径被忽略。IN EXCLUSIVE MODE
/IN SHARE MODE
-IN EXCLUSIVE MODE
关键字短语释放常规的IRIS锁。
IN SHARE MODE
关键字短语在IRIS级别释放共享锁。
描述
UNLOCK
命令用来解锁被LOCK
命令锁定的SQL表。
此表必须是已存在的表,您对其具有必要的特权。
如果tablename
是临时表,则命令执行成功,但不执行任何操作。
如果tablename
是视图,则命令失败,并出现SQLCODE -400
错误。
UNLOCK
和UNLOCK TABLE
是同义词。
UNLOCK
命令用来反转LOCK
操作。
即使没有锁被持有,UNLOCK
命令也会成功完成。
可以使用LOCK
多次锁定一个表;
必须显式解锁表,解锁次数为表被显式锁定的次数。
权限
该命令为特权操作。
在使用UNLOCK IN SHARE MODE
之前,进程必须对指定的表拥有SELECT
权限。
在使用UNLOCK IN EXCLUSIVE MODE
之前,进程必须对指定的表具有INSERT
、UPDATE
或DELETE
权限。
对于IN EXCLUSIVE MODE, INSERT
或UPDATE
特权必须在表的至少一个字段上。
未能持有足够的特权将导致SQLCODE -99
错误(特权违反)。
可以通过调用%CHECKPRIV
命令来确定当前用户是否具有必要的特权。
通过调用$SYSTEM.SQL.Security.CheckPrivilege()
方法,可以确定指定的用户是否具有必要的表级特权。
Nonexistent Table
如果试图解锁一个不存在的表,则unlock
会失败,并出现编译错误,并且会出现SQLCODE=-30: table 'SQLUser. txt . txt
消息。
mytable”未找到。
示例
下面的嵌入式SQL示例创建一个表,锁定它,然后解锁它:
ClassMethod Unlock()
{n SQLCODE,%msg&sql(CREATE TABLE mytest (ID NUMBER(12,0) NOT NULL,CREATE_DATE DATE DEFAULT CURRENT_TIMESTAMP(2),WORK_START DATE DEFAULT SYSDATE) )if SQLCODE = 0 { w !,"创建表" } else { w !,"CREATE TABLE error: ",SQLCODEq }
}
ClassMethod Unlock1()
{n SQLCODE,%msg&sql(LOCK mytest IN EXCLUSIVE MODE) if SQLCODE =0 { w !,"锁表" } elseif SQLCODE = -110 { w !,"表被另一个进程锁定",!,%msg } else { w !,"其他 LOCK error: ",SQLCODE,!,%msg }&sql(UNLOCK mytest IN EXCLUSIVE MODE) if SQLCODE=0 { w !,"解锁表" } else { w !,"其他 UNLOCK error: ",SQLCODE,!,%msg }
}
DHC-APP>d ##class(PHA.TEST.SQLCommand).Unlock1()锁表
解锁表
第八十一章 SQL命令 UNLOCK相关推荐
- 第七十一章 SQL命令 SELECT(三)
文章目录 第七十一章 SQL命令 SELECT(三) 列别名 字段列别名 Non-Field列别名 FROM子句 表的别名 Sharding Transparent to SELECT Queries ...
- 第八十七章 SQL命令 VALUES
文章目录 第八十七章 SQL命令 VALUES 大纲 参数 描述 示例 第八十七章 SQL命令 VALUES 指定字段中使用的数据值的INSERT/UPDATE子句. 大纲 (field1{,fiel ...
- 第二十一章 SQL命令 CREATE TRIGGER(一)
文章目录 第二十一章 SQL命令 CREATE TRIGGER(一) 大纲 参数 描述 权限和锁 定义触发器的其他方式 参数 trigname event ORDER REFERENCING acti ...
- 第八十六章 SQL命令 USE DATABASE
文章目录 第八十六章 SQL命令 USE DATABASE 大纲 参数 描述 通过xDBC执行 第八十六章 SQL命令 USE DATABASE 设置当前名称空间和数据库. 大纲 USE [DATAB ...
- MySQL数据库 第0章:每章SQL命令总结
MySQL数据库 第0章:每章SQL命令总结 MySQL数据库 第1章:数据库入门 MySQL数据库 第2章:数据库基本操作 MySQL数据库 第3章:数据类型与约束 MySQL数据库 第4章:数据库 ...
- 《老子》第八十一章 信言不美,美言不信
第八十一章 信言不美,美言不信 信言不美[1],美言不信[2].善者不辩[3],辩者不善[4].知者不博[5],博者不知[6].圣人无积[7],既以为人己愈有[8],既以与人己愈多[9].天之道,利而 ...
- 第六章 SQL命令 CREATE INDEX(一)
文章目录 第六章 SQL命令 CREATE INDEX(一) 大纲 参数 描述 权限与锁 仅支持兼容性选项 索引名称 现有索引 表明 字段名称 嵌入对象中的字段(`%SerialObject`) 索引 ...
- 第三章 SQL命令 ALTER USER
文章目录 第三章 SQL命令 ALTER USER 大纲 参数 描述 权限 示例 第三章 SQL命令 ALTER USER 修改用户密码. 大纲 ALTER USER user-name IDENTI ...
- 第十六章 SQL命令 CREATE TABLE(三)
文章目录 第十六章 SQL命令 CREATE TABLE(三) 字段数据约束 NULL和NOT NULL UNIQUE DEFAULT DEFAULT Keywords ON UPDATE Colla ...
最新文章
- Librepilot-创建UAVObject及编译到飞机端和地面站端的步骤
- jdk1.8.0_45源码解读——Map接口和AbstractMap抽象类的实现
- php mysql查询结果_php对mysql查询结果进行分页 - ceil
- Pandas学习笔记1(序列部分)
- rocketmq 消息 自定义_RocketMQ消息轨迹-设计篇
- Android之Activity **** has leaked window android.widget.PopupWindow$PopupDecorView that was originall
- python3.5 连接mysql_python3.5 連接mysql本地數據庫
- 当强人工智能时代来临,哪些人不会失业?
- mysql中的rman备份_oracle数据库 rman基本备份操作
- 数据建模_漫谈数据仓库之维度建模
- Android:ViewPager
- access与sqlserver数据转换
- 决策树:ID3和C4.5
- 【Flask】通过Flask_login实现用户登录
- Xlim函数--Matplotlib
- xshell安卓版下载_xshell5手机安卓版下载|Xshell5最新版下载_v5.0.1199_9ht安卓下载
- AD9833产生DDS调试总结
- QWT官方例子--barchart
- python足球联赛赛程_足球联赛赛程表生成
- 现代C语言程序设计之C语言概述
热门文章
- 激荡10年,珍贵的毕业礼物
- 关于虚拟机检测技术的研究
- 蓝牙资讯|苹果获得智能戒指专利,可用于交互 AR / VR 头显设备
- java机器学习库_6大最常用的Java机器学习库一览
- java SpringBoot 集成 阿里云视频直播 完成直播功能
- 周鸿祎区块链五大缺点, 区块链的100个问题
- stc15XX单片机的EPROM读写
- 安装nvm时报错exit status 145和exit status 1 exit status 5
- 使用Taro小程序框架开发一个学习、刷题、论坛、聊天交流的微信小程序
- 前端导出 excel 打开文件提示:发现“XXX.xIsx“中的部分内容有问题。是否让我们尽量尝试恢复?如果您信任此工作簿的源,请单击‘是“。