作用于表的触发器vs作用于数据库的触发器(包含SQL语言与触发器个别相关知识)
Posted donelyorjune
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了作用于表的触发器vs作用于数据库的触发器(包含SQL语言与触发器个别相关知识)相关的知识,希望对你有一定的参考价值。
首先,百度一下SQL触发器有多少种
(来自百度百科:https://baike.baidu.com/item/SQL%E8%A7%A6%E5%8F%91%E5%99%A8#3)
然后有关于缩写的SQL语言一共有四种
(来源:https://www.cnblogs.com/fan-yuan/p/7879353.html)
而在逐个查找定义的时候发现实际上有五种
ps.关于TCL的解释:(Tool Command Language)工具命令语言,一种脚本语言。 由John Ousterhout创建。 TCL很好学,功能很强大。TCL经常被用于快速原型开发,脚本编程,GUI和测试等方面。
(来自百度百科:https://baike.baidu.com/item/TCL%E8%AF%AD%E8%A8%80/8377624?fr=aladdin)
咳、话题扯远了
那么,简而言之,SQL触发器主要有以下:
DML(Data Manipulation Language)数据操纵语言,针对表数据(insert,update,delete)
DDL(Data Definition Language)数据定义语言,针对表结构(drop_table,alter_table,create_table)
DCL(Data Control Language)数据控制语言,针对权限(grant,deny,revoke)
而我们标题提到的就是DDL和DML了
DDL语法结构:
create trigger trigger_name
on database
for drop_table | alter_table | create_table
as
[print | SQL语句块]
本人实例:
触发语句:
update student
set name=‘寂子‘
where student.stu_id=‘50101‘
DML语法结构:
create trigger trigger_name
on table_name
for insert | update | delate
as
[print | SQL语句块]
总结:DDL比DML的约束范围更加大,限制了整个数据库的操作,而DML仅局限于某个表上的操作。
以上是关于作用于表的触发器vs作用于数据库的触发器(包含SQL语言与触发器个别相关知识)的主要内容,如果未能解决你的问题,请参考以下文章