时间:2021-07-01 10:21:17 帮助过:8人阅读
MySQL触发器 创建只有一个执行语句的触发器基本形式:
CREATE TRIGGER 触发器名 BEFORE | AFTER 触发事件
ON 表名 FOR EACH ROW 执行语句创建具有多个执行语句的触发器
基本形式:
CREATE TRIGER 触发器名称 BEFORE | AFTER 触发事件
ON 表名 FOR EACH ROW
BEGIN
执行语句列表
END注意:在MySQL中,一个表在相同的时间和相同的触发时间只能创建一个触发器,如触发事件INSERT,触发时间AFTER的触发器只能有一个,但是可以定义BEFORE的触发器。查看触发器 SHOW TRIGGERS;SELECT * FROM information_schema.triggers;
或者:SELECT * FROM information_schema.triggers WHERE TRIGGER_NAME='触发器名称';
information_schema是MySQL中默认存在的库,用于记录触发器信息的数据表。应用触发器
触发器中不能包含START TRANSCATION、COMMIT或ROLLBACK等关键词,也不能包含CALL语句。删除触发器
DROP TRIGGER 触发器名称
MySQL视图 视图是一个虚表,是从数据库中一个或多个表中导出来的表,其内容由查询定义。数据库中只存放了视图的定义,没有存放视图中的数据。视图中的数据是依赖于原来的表中的数据的。视图是存储在数据库中的查询的sql语句,它主要出于安全和可使复杂的查询易于理解和 使用。视图作用: 简单性安全性逻辑数据独立性 创建视图 查看用户是否具有创建视图的权限
select select_priv,create_view_priv from mysql.user where user='用户名';
创建视图
CREATE [ALGORITHM={UNDEFINDE | MERGE | TEMPTABLE}]
VIEW 视图名 [(属性清单)]
AS SELECT 语句
[WITH [CASCADED | LOCAL] CHECK OPTION];创建视图注意事项 有创建视图的权限select语句不能包含from子句中的子查询;select语句不能引用系统或用户变量select语句不能引用预处理语句参数在存储子程序内,定义不能引用子程序参数或局部变量在定义中引用的表或视图必须存在。在定义中不能引用temporary表,不能创建temporary视图;视图定义中命名的表必须存在不能将触发器与视图关联在一起在视图定义中允许使用order by,但是,如果从特定视图进行选择,而该视图使用了具有自己order by的语句,它将被忽略 查看视图 DESCRIBE/DESC 视图名;SHOW TABLE STATUS LIKE ‘视图名’; 修改视图 CREATE OR REPLACE [ALGORITHM={UNDEFINDE | MERGE | TEMPTABLE}]
VIEW 视图 [(属性清单)]
AS SELECT 语句
[WITH [CASCADED | LOCAL] CHECK OPTION]ALTER 更新视图 视图中的数据虽然可以更新,但是有很多的限制。一般情况下,最好将视图作为查询数据的虚拟表,而不要通过视图更新数据。删除视图 DROP VIEW IF EXISTS <视图名> [RESTRICT | CASCADE]
bitsCN.com