云数据库 GAUSSDB-PL/SQL语言:trigger
trigger
序号 |
Oracle数据库 |
差异 |
|
---|---|---|---|
1 |
DML TRIGGER |
支持,有差异 |
不支持Compound DML Triggers。 |
2 |
SYSTEM TRIGGER |
不支持 |
- |
语法类型 |
Oracle数据库 |
GaussDB 数据库 |
差异 |
---|---|---|---|
create语法 |
CREATE [ OR REPLACE ] [ EDITIONABLE | NONEDITIONABLE ] TRIGGER plsql_trigger_source |
支持,有差异 |
不支持OR REPLACE 、EDITIONABLE | NONEDITIONABLE、plsql_trigger_source部分支持。 |
plsql_trigger_source ::= |
[schema.] trigger_name [ sharing_clause ] [ default_collation_clause ] { simple_dml_trigger | instead_of_dml_trigger | compound_dml_trigger | system_trigger } |
支持,有差异 |
不支持schema、 sharing_clause、default_collation_clause。 |
simple_dml_trigger ::= |
{ BEFORE | AFTER } dml_event_clause [ referencing_clause ] [ FOR EACH ROW ] [ trigger_edition_clause ] [ trigger_ordering_clause ] [ ENABLE | DISABLE ] [ WHEN ( condition ) ] trigger_body |
支持,有差异 |
不支持referencing_clause、referencing_clause(用from referencing_table代替)、trigger_edition_clause、trigger_ordering_clause、 ENABLE | DISABLE;部分支持trigger_body。 |
dml_event_clause ::= |
{ DELETE | INSERT | UPDATE [ OF column [, column ]... ] } [ OR { DELETE | INSERT | UPDATE [ OF column [, column]... ] }... ON [ schema.] { table | view } |
不支持 |
- |
trigger_body ::= |
{ plsql_block | CALL routine_clause } |
支持,有差异 |
不支持plsql_block,仅支持EXECUTE PROCEDURE function_name ( arguments );方式执行func,并且func需要用户定义,必须声明为不带参数并返回类型为触发器,在触发器触发时执行。 |
instead_of_dml_trigger ::= |
INSTEAD OF { DELETE | INSERT | UPDATE } [ OR { DELETE | INSERT | UPDATE } ]... ON [ NESTED TABLE nested_table_column OF ] [ schema. ] noneditioning_view [ referencing_clause ] [ FOR EACH ROW ] [ trigger_edition_clause ] [ trigger_ordering_clause ] [ ENABLE | DISABLE ] trigger_body |
支持,有差异 |
不支持NESTED TABLE nested_table_column OF、referencing_clause、trigger_edition_clause、trigger_ordering_clause、ENABLE | DISABLE。 |
compound_dml_trigger ::= |
CREATE trigger FOR dml_event_clause ON view COMPOUND TRIGGER INSTEAD OF EACH ROW IS BEGIN statement; END INSTEAD OF EACH ROW; |
不支持 |
- |
system_trigger ::= |
{ BEFORE | AFTER | INSTEAD OF } { ddl_event [OR ddl_event]... | database_event [OR database_event ]... } ON { [schema.] SCHEMA | [ PLUGGABLE ] DATABASE } [ trigger_ordering_clause ] [ ENABLE | DISABLE ] trigger_body |
不支持 |
- |
序号 |
Oracle数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
ALTER TRIGGER [ schema. ] trigger_name { trigger_compile_clause | { ENABLE | DISABLE } | RENAME TO new_name | { EDITIONABLE | NONEDITIONABLE } } ; |
支持,有差异 |
不支持schema、trigger_compile_clause、{ ENABLE | DISABLE }、{ EDITIONABLE | NONEDITIONABLE }。 |
序号 |
Oracle数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
DROP TRIGGER [ schema. ] trigger ; |
支持,有差异 |
不支持schema。 |
Oracle数据库名为*_TRIGGERS的视图统计了trigger的相关信息,视图具体差异参考系统视图章节。
序号 |
Oracle数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
nested subprogram(子块) |
支持,有差异 |
不支持重载,不支持定义为自治事务,不支持SETOF的使用,仅限一个限定符引用嵌套子程序或嵌套子程序的变量。 |
2 |
package subprogram |
支持 |
- |
3 |
standalone subprogram(包含Function & Procedure) |
支持 |
- |
4 |
匿名块 |
支持 |
- |
序号 |
Oracle数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
Function |
支持 |
- |
2 |
Procedure |
支持 |
- |
3 |
匿名块 |
支持 |
- |
序号 |
Oracle数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
DETERMINISTIC |
支持,有差异 |
GaussDB中为IMMUTABLE |
2 |
PARALLEL_ENABLE |
不支持 |
- |
3 |
PIPELINED |
不支持 |
- |
4 |
RESULT_CACHE |
不支持 |
- |
序号 |
Oracle数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
IN |
支持 |
- |
2 |
OUT |
支持 |
- |
3 |
IN OUT |
支持 |
- |
序号 |
Oracle数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
CREATE FUNCTION |
支持 |
- |
2 |
CREATE LIBRARY |
不支持 |
- |
3 |
CREATE PACKAGE |
支持 |
- |
4 |
CREATE PACKAGE BODY |
支持 |
- |
5 |
CREATE PROCEDURE |
支持 |
- |
6 |
CREATE TRIGGER |
支持 |
- |
7 |
CREATE TYPE |
支持,有差异 |
支持类型不同。 |
8 |
CREATE TYPE BODY |
不支持 |
- |
序号 |
Oracle数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
ALTER FUNCTION |
支持 |
- |
2 |
ALTER LIBRARY |
不支持 |
- |
3 |
ALTER PACKAGE |
支持 |
- |
4 |
ALTER PROCEDURE |
支持 |
- |
5 |
ALTER TRIGGER |
支持 |
- |
6 |
ALTER TYPE |
支持 |
- |
序号 |
Oracle数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
DROP FUNCTION |
支持 |
- |
2 |
DROP LIBRARY |
不支持 |
- |
3 |
DROP PACKAGE |
支持 |
- |
4 |
DROP PROCEDURE |
支持 |
- |
5 |
DROP TRIGGER |
支持 |
- |
6 |
DROP TYPE |
支持 |
- |
7 |
DROP TYPE BODY |
不支持 |
- |
序号 |
Oracle数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
AC CES SIBLE BY |
不支持 |
- |
2 |
AGGREGATE |
支持 |
- |
3 |
DETERMINISTIC |
支持,有差异 |
- |
4 |
PIPE ROW |
不支持 |
- |
5 |
PIPELINED |
不支持 |
- |
6 |
SQL_MACRO |
不支持 |
- |
7 |
RESTRICT_REFERENCES |
不支持 |
- |
8 |
INLINE |
支持,有差异 |
- |
序号 |
Oracle数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
EXCEPTION_INIT |
支持,有差异 |
GaussDB不支持与系统错误码进行绑定 |
2 |
Exception |
支持 |
- |
3 |
Exception Handler |
支持 |
- |
4 |
SQLCODE |
支持 |
- |
5 |
SQLERRM |
支持 |
- |
序号 |
Oracle数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
COVERAGE |
不支持 |
- |
2 |
COLLATION |
支持 |
- |
3 |
DEPRECATE |
不支持 |
- |
4 |
FORALL |
支持 |
- |
5 |
NOCOPY |
不支持 |
- |
6 |
RETURNING INTO |
支持,有差异 |
列存表不支持 |
7 |
SERIALLY_REUSABLE |
不支持 |
- |
8 |
SHARING |
不支持 |
- |
9 |
UDF |
支持,有差异 |
java UDF只支持分布式 |
10 |
BULK COLLECT |
支持 |
- |
- 云数据库GaussDB(for MySQL)_兼容MySQL
- 云数据库mysql_云上数据库_SQL云数据库_SQLserver
- 免费mysql云数据库
- 免费mysql云数据库
- 云数据库 GaussDB(for MySQL)与RDS for MySQL的区别
- MySQL_云数据库RDS for MySQL_华为云
- MySQL云数据库_【免费】_在线MySQL免费数据库_SQL数据库
- RDS for MySQL限流_华为云数据库RDS_自治限流_SQL限流
- PostgreSQL_云数据库RDS for PostgreSQL_华为云
- 云数据库GaussDB(for MySQL)_云数据库_分布式数据库