SQL COMMAND · 触发器与规则
ALTER TRIGGER
更改触发器的定义
change the definition of a trigger
ALTER触发器与规则引入 7.3现存至 20 devel5 次语法变更
- 动词
ALTER- 对象
TRIGGER- 分组
- 触发器与规则
- 引入版本
- 7.3
- 状态
- 现存
- 语法变更次数
- 5
- 手册小节数
- 6
版本轨迹
相对 PostgreSQL 17 无变化。
语法铁道图 PostgreSQL 18
沿轨道从左向右阅读,分岔表示选择,绕行表示可选,回环表示重复。方框为参数,点击带下划线的参数可展开子规则。
ALTER TRIGGER · 语法 2
语法概要
ALTER TRIGGER name ON table_name RENAME TO new_name ALTER TRIGGER name ON table_name [ NO ] DEPENDS ON EXTENSION extension_name
描述
ALTER TRIGGER 更改现有触发器的属性。
RENAME 子句更改给定触发器的名称,而不改变该触发器定义的其他部分。如果该触发器所在的表是分区表,则各分区中的对应克隆触发器也会一并重命名。
DEPENDS ON EXTENSION 子句将触发器标记为依赖于某个扩展,这样在删除该扩展时,该触发器也会自动删除。
若要更改触发器的属性,你必须拥有该触发器所作用的表。
参数
name要修改的现有触发器的名称。
table_name该触发器所作用的表的名称。
new_name该触发器的新名称。
extension_name该触发器要依赖的扩展名称(如果指定了
NO,则表示不再依赖该扩展)。被标记为依赖于扩展的触发器会在该扩展被删除时自动删除。
注解
暂时启用或禁用触发器的功能由 ALTER TABLE 提供,而不是
ALTER TRIGGER,因为 ALTER TRIGGER 没有方便的方式来表达一次性启用或禁用一个表上全部触发器这一选项。
示例
要重命名一个现有触发器:
ALTER TRIGGER emp_stamp ON emp RENAME TO emp_track_chgs;
要将一个触发器标记为依赖于某个扩展:
ALTER TRIGGER emp_stamp ON emp DEPENDS ON EXTENSION emplib;
兼容性
ALTER TRIGGER 是
PostgreSQL 对 SQL 标准的扩展。
另见
语法演化
相邻大版本之间的差异,新的在前。版本号链接到对应快照。
PostgreSQL 15← 14正文更新
正文更新PostgreSQL 13← 12语法变化
+ ALTER TRIGGER name ON table_name [ NO ] DEPENDS ON EXTENSION extension_name正文更新PostgreSQL 9.6← 9.5语法变化
+ ALTER TRIGGER name ON table_name DEPENDS ON EXTENSION extension_name正文更新PostgreSQL 9.2← 9.1语法变化
+ ALTER TRIGGER name ON table_name RENAME TO new_name− ALTER TRIGGER name ON table RENAME TO new_name正文更新PostgreSQL 9.0← 8.4语法变化
+ ALTER TRIGGER name ON table RENAME TO new_name− ALTER TRIGGER name ON table RENAME TO newname正文更新PostgreSQL 8.1← 8.0正文更新
正文更新PostgreSQL 7.4← 7.3语法变化
+ ALTER TRIGGER name ON table RENAME TO newname− ALTER TRIGGER trigger ON table正文更新PostgreSQL 7.3← 7.2新增此命令
同组命令
| 命令 | 动词 | 对象 | 版本变动 | 最近变更 |
|---|---|---|---|---|
CREATE CONSTRAINT TRIGGER | CREATE | CONSTRAINT TRIGGER | 9.03 次 | |
| 定义一个新的约束触发器 | 于 9.1 移除 | |||
CREATE EVENT TRIGGER | CREATE | EVENT TRIGGER | 111 次 | |
| 定义一个新的事件触发器 | 现存 | |||
ALTER EVENT TRIGGER | ALTER | EVENT TRIGGER | 142 次 | |
| 更改事件触发器的定义 | 现存 | |||
DROP EVENT TRIGGER | DROP | EVENT TRIGGER | — | |
| 移除一个事件触发器 | 现存 | |||
CREATE RULE | CREATE | RULE | 9.46 次 | |
| 定义一条新的重写规则 | 现存 | |||
ALTER RULE | ALTER | RULE | — | |
| 修改一条重写规则的定义 | 现存 | |||
DROP RULE | DROP | RULE | 9.25 次 | |
| 移除一条重写规则 | 现存 | |||
CREATE TRIGGER | CREATE | TRIGGER | 1911 次 | |
| 定义一个新触发器 | 现存 | |||
ALTER TRIGGER | ALTER | TRIGGER | 135 次 | |
| 更改触发器的定义 | 现存 | |||
DROP TRIGGER | DROP | TRIGGER | 9.23 次 | |
| 移除一个触发器 | 现存 | |||