information_schema.triggers 学习

mysql实例中的每一个trigger 对应到information_schema.triggers 中有一行

1、information_schema.triggers 表的常用列:

  1、trigger_catalog          :永远是def

  2、trigger_schema          :trigger 所在的数据库名

  3、event_manipulation        :触发trigger 的事件类型可以是 insert | update | delete

  4、event_object_schema        :trigger 所基于的表所在的数据库名

  5、event_object_table        :trigger 所基于的表名

  6、action_statement         :trigger 内部所包涵的SQL语句

2、例子:

drop table if exists t;
drop table if exists t_log;

create table t(
id int auto_increment,
x int,
constraint pk__t__id primary key(id))
engine=innodb
default char set utf8;

create table t_log(
id int auto_increment,
log_time datetime default now(),
constraint pk__t_log__id primary key(id))
engine=innodb
default char set utf8;

delimiter go
create trigger tg__insert__t
before insert
on t
for each row
begin

    insert into t_log(log_time) values(current_timestamp());
end
go

delimiter ;

查看trigger 信息:

mysql> select * from triggers \G
*************************** 1. row ***************************
           TRIGGER_CATALOG: def
            TRIGGER_SCHEMA: tempdb
              TRIGGER_NAME: tg__insert__t
        EVENT_MANIPULATION: INSERT
      EVENT_OBJECT_CATALOG: def
       EVENT_OBJECT_SCHEMA: tempdb
        EVENT_OBJECT_TABLE: t
              ACTION_ORDER: 0
          ACTION_CONDITION: NULL
          ACTION_STATEMENT: begin

insert into t_log(log_time) values(current_timestamp());
end
        ACTION_ORIENTATION: ROW
             ACTION_TIMING: BEFORE
ACTION_REFERENCE_OLD_TABLE: NULL
ACTION_REFERENCE_NEW_TABLE: NULL
  ACTION_REFERENCE_OLD_ROW: OLD
  ACTION_REFERENCE_NEW_ROW: NEW
                   CREATED: NULL
                  SQL_MODE: STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
                   DEFINER: root@localhost
      CHARACTER_SET_CLIENT: utf8
      COLLATION_CONNECTION: utf8_general_ci
        DATABASE_COLLATION: latin1_swedish_ci
时间: 2024-10-19 15:29:49

information_schema.triggers 学习的相关文章

information_schema.column_privileges 学习

mysql 的授权是分层次的 实例级 | 库级 | 表级 | 列级 而这些授权信息被保存在了mysql.user | mysql.db | mysql.tables_priv | mysql.column_priv 等表中 而information_schema.column_privileges 表中的信息来自于mysql.column_priv 表 1.information_schema.column_privileges 表中常用的列: 1.grantee :用户(对列就相应权限的用户)

information_schema.collation_character_set_applicability 学习

字符集和排序规则之间是不可以随便搭配的.如果你想知道一个字符集它所搭配的排序规则有哪些?那就可以从information_schema.collation_character_set_applicability 这个表来看 1.information_schema.collation_character_set_applicability 常用列说明: 1.character_set_name :字符集名 2.collation_name  :排序规则名 2.例子: 测试字符集和与之匹配的排序规

information_schema.collations 学习

information_schema.collations 表中的每一行对应一个排序规则 1.information_schema.collations 表中学用列: 1.id :排序规则的ID 2.is_default :是否是字符集的默认排序规则 3.collation_name :排序规则名 4.character_set_name  :这个排序规则所对应的字符集名字 5.is_compiled :是不已经被编译进MySQL来了 2.例子: 查看实例的排序规则信息 select id, i

information_schema.columns 学习

每一个表中的每一列都会在information_schema.columns表中对应一行 1.informaiton_schema.columns 常用列: 1.table_catalog :不管是table | view 这个列的值总是def 2.table_schema  :表 | 视图所在的数据库名 3.table_name  :表名 | 视图名 4.column_name  :列名 5.column_default   :列的默认值 6.is_nullable  :是否可以取空值 7.d

information_schema.partitions 学习

1.partitions 表中的常用列说明: 1.table_schema:表所在的数据库名 2.table_name:表名 3.partition_method:表分区采用的分区方法 4.partition_expression:分区键 5.partions_name:分区名 6.table_rows:分区中所包涵的数据行数 7.data_free:分区中还未使用的空间 2.例子: 查询实例中的分区表.分区方法,分区字段 select concat(table_schema,'.',table

information_schema.referential_constraints 学习

information_schema.referential_constraints 表用于查看外键约束 1.information_schema.referential_constraints表的常用列: 1.constraint_schema :约束(外键)所在的库名 2.constraint_name :约束名(外键名) 3.unique_constraint_schema :被引用约束所在库名 4.unique_constraint_name :被引用约束名 2.例子: 1.定义一对有外

information_schema.profiling学习

information_schema.profiling可以用来分析每一条SQL在它执行的各个阶段的用时,注意这个表是session 级的,也就是说如果session1 开启了它:session2没有开启 这个情况下session2 去查询只会返回一个空表 1.set @@ssesion.profiling=1 可以开启information_schema.profiling相关监测 2.information_schema.profiling 表的常用列 1.query_id :查询id 用于

information_schema.optimizer_trace学习

information_schema.optimizer_trace 用于追踪优化器的优化过程:通常来说这张表中是没有数据的,要想开户追踪要把 @@session.optimizer_trace='enabled=on,one_line=on' information_schema.optimizer_trace表的常用列: 1.query :查询语句 2.trace :查询的追踪信息 例子: 1.没有打开@@session.optmizer_trace='enabled=on,one_line

information_schema.character_sets 学习

information_schema.character_sets 表用于查看字符集的详细信息 1.character_sets 常用列说明: 1.character_set_name: 字符集名 2.default_collate_name:  默认排序规则 3.description:  描述信息 4.maxlen:  单个字符最大占用字节数 2.例子: 查看与字符集相关的信息 select character_set_name,-- 字符集名 default_collate_name, -