第三十九章 SQL命令 DROP TRIGGER
文章目录
- 第三十九章 SQL命令 DROP TRIGGER
- 大纲
- 参数
- 描述
- FROM 子句
- 示例
第三十九章 SQL命令 DROP TRIGGER
删除触发器
大纲
DROP TRIGGER name [ FROM table ]
参数
name
- 要删除的触发器的名称。触发器名称可以是限定的,也可以是非限定的;如果限定,则其架构名称必须与表的架构名称匹配。FROM table
- 可选-要从中删除触发器的表。如果指定了FROM
子句,则只在表中搜索命名触发器。如果未指定FROM
子句,则在NAME
中指定的整个架构中搜索命名触发器。
描述
DROP TRIGGER
命令删除触发器。如果要修改现有触发器,则必须先调用DROP TRIGGER
删除旧版本的触发器,然后再调用CREATE TRIGGER
。
注:DROP TABLE
删除与该表关联的所有触发器。
DROP TRIGGER
命令是特权操作。用户必须具有%DROP_TRIGGER
管理权限才能执行DROP TRIGGER
。否则将导致SQLCODE-99
错误,因为%msg
用户‘name’
没有%DROP_TRIGGER
权限。
用户必须对指定表拥有%ALTER
特权。如果用户是表的所有者(创建者),则会自动授予该用户对该表的%ALTER
权限。否则,必须授予用户对该表的%ALTER
特权。否则将导致SQLCODE-99
错误,因为%msg
用户‘name’
没有更改‘Schema.TableName’
的表定义所需的%ALTER特权。
如果拥有适当的授予权限,则可以使用GRANT
命令分配%DROP_TRIGGER
和%ALTER
权限。
在嵌入式SQL中,您可以使用$SYSTEM.Security.Login()
方法以具有适当权限的用户身份登录:
DO $SYSTEM.Security.Login("_SYSTEM","SYS")&sql( )
必须具有%Service_Login:Use
权限才能调用$SYSTEM.Security.Login
方法。
DROP TRIGGER
不能用于从持久类投影的表,除非表类定义包括[DdlAllowed]
。否则,操作将失败,并出现SQLCODE-300
错误,同时未为类‘Schema.tablename’
启用%msg DDL
。DROP TRIGGER
不能用于从部署的持久类投射的表。此操作失败,并出现SQLCODE-400
错误,并显示%msg Unable to Execute DDL
以修改已部署的类:‘classname’
。
DROP TRIGGER
语句获取表的表级锁。这可以防止其他进程修改表的数据。此锁在放下触发器操作结束时自动释放。
FROM 子句
触发器及其表必须驻留在同一架构中。如果触发器名称未限定,则触发器架构名称默认为与表架构相同的架构,如FROM
子句中所指定。如果触发器名称是非限定的,并且没有FROM
子句,或者表名也是非限定的,则触发器模式缺省为缺省模式名称;不使用模式搜索路径。如果两个名称都是限定的,则触发器架构名称必须与表架构名称相同。模式名称不匹配会导致SQLCODE-366
错误;只有当触发器名称和表名都是限定的,并且它们指定了不同的模式名称时才会出现这种情况。
在SQL中,对于特定表,触发器名称在其架构内必须是唯一的。因此,在一个模式中可以有多个同名触发器。可选的FROM子句用于确定要删除的触发器:
- 如果未指定
FROM
子句,并且 IRIS在架构中找到与指定名称匹配的唯一触发器,则 IRIS将删除该触发器。 - 如果指定了
FROM
子句,并且 IRIS在架构中找到了与指定名称和FROM
表名都匹配的唯一触发器,则 IRIS将删除该触发器。 - 如果未指定
FROM
子句,并且 IRIS找到多个与指定名称匹配的触发器,则 IRIS将发出SQLCODE-365
错误。 - 如果 IRIS找不到与指定名称匹配的触发器(对于
FROM
子句中指定的表),或者如果没有FROM
子句,则对于架构中的任何表, IRIS都会发出SQLCODE-363
错误。
示例
以下示例删除与系统范围默认架构中的任何表关联的名为TRIGGER_1
的触发器。(初始默认架构为SQLUser
):
DROP TRIGGER Trigger_1
以下示例删除与A架构中的任意表关联的名为TRIGGER_2
的触发器。
DROP TRIGGER A.Trigger_2
以下示例删除与系统范围默认架构中的Patient
表关联的名为TRIGGER_3
的触发器。如果找到名为TRIGGER_3
的触发器,但它与患者没有关联,则IRIS会发出SQLCODE-363
错误。
DROP TRIGGER Trigger_3 FROM Patient
以下示例都删除了与Test
模式中的Patient
表关联的名为TRIGGER_4
的触发器。
DROP TRIGGER Test.Trigger_4 FROM Patient
DROP TRIGGER Trigger_4 FROM Test.Patient
DROP TRIGGER Test.Trigger_4 FROM Test.Patient
第三十九章 SQL命令 DROP TRIGGER相关推荐
- 第二十九章 SQL命令 DISTINCT
文章目录 第二十九章 SQL命令 DISTINCT 大纲 参数 描述 DISTINCT和ORDER BY DISTINCT和GROUP BY 字母大小写与DISTINCT优化 DISTINCT的其他用 ...
- 第二十二章 SQL命令 CREATE TRIGGER(二)
文章目录 第二十二章 SQL命令 CREATE TRIGGER(二) SQL触发器代码 ObjectScript触发代码 字段引用和伪字段引用 引用流属性 引用SQLComputed属性 标签 方法调 ...
- 第十六章 SQL命令 CREATE TABLE(三)
文章目录 第十六章 SQL命令 CREATE TABLE(三) 字段数据约束 NULL和NOT NULL UNIQUE DEFAULT DEFAULT Keywords ON UPDATE Colla ...
- 【正点原子FPGA连载】第三十九章OV7725摄像头RGB-LCD显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1
1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:ht ...
- 第十四章 SQL命令 CREATE TABLE(一)
文章目录 第十四章 SQL命令 CREATE TABLE(一) 大纲 参数 描述 语法概述 SQL安全和权限 表名 表存在 第十四章 SQL命令 CREATE TABLE(一) 创建表 大纲 CREA ...
- 第六十九章 SQL函数 JSON_OBJECT
文章目录 第六十九章 SQL函数 JSON_OBJECT 大纲 参数 描述 选择模式和排序 ABSENT ON NULL 示例 第六十九章 SQL函数 JSON_OBJECT 将数据作为JSON对象返 ...
- 第三十五章 SQL函数 CURRENT_DATE
文章目录 第三十五章 SQL函数 CURRENT_DATE 大纲 描述 示例 第三十五章 SQL函数 CURRENT_DATE 日期/时间函数,返回当前本地日期. 大纲 CURRENT_DATE 描述 ...
- 第三十六章 SQL函数 CURRENT_TIME
文章目录 第三十六章 SQL函数 CURRENT_TIME 大纲 参数 描述 小数秒精度 示例 第三十六章 SQL函数 CURRENT_TIME 返回当前本地时间的日期/时间函数. 大纲 CURREN ...
- 小满Vue3第三十九章(Vue开发桌面程序Electron)
建议视频教程小满Vue3(第三十九章 electron桌面程序)_哔哩哔哩_bilibili Electron官网Electron | Build cross-platform desktop app ...
最新文章
- Java程序猿的JavaScript学习笔记(12——jQuery-扩展选择器)
- Http协议:状态码
- r.java是什么_R.java文件介绍
- html兼容webki,评IE10对HTML5的完美支持
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(一)让物体动起来①
- Day26:configparser、subprocess模块
- Java基础:JDBC
- 智能优化算法:阿基米德优化算法 -附代码
- React Native之七牛
- 数字信号处理实验三用fft对信号作频谱分析_矢量信号分析
- Office产品 “您的组织策略阻止我们为您完成此操作” 解决办法
- Android Studio Offline work mode
- chm 已取消到该网页的导航,打不开!
- adobe绿色版cs6下载地址
- 浪潮4U服务器 raid5 直通(JBOD)
- 详解圆形头像Shader
- python 数组去重复
- 电脑解锁后黑屏有鼠标_电脑开机后黑屏只有鼠标怎么办
- 重庆OA办公系统目前推出PC端、移动终端(安卓、IOS、平板)- 上弦科技
- 2019-10 前端技术汇总
热门文章
- English Learning - Day5 L1考前复习 2023.2.10 周五
- populate() isn‘t reentrant 不可重入
- java增强班_【图片】龙之谷模拟强化Java版_龙之谷吧_百度贴吧
- 【Linux】Bonding配置,管理
- 高频曝光背后:恒大造车的工匠精神与“发动机效应”
- Docker学习:外部浏览器访问容器 | 容器访问容器 | 访问容器的常用5种方式 | -p -P 详解
- Java该如何自学才能快速上手?
- 高级编程技术作业(七、八)
- js设计模式-装饰器模式
- netty大端小端处理