MySQL笔记-trigger与index

来源:互联网 发布:136书屋下载软件 编辑:程序博客网 时间:2024/05/01 18:29

一、TRIGGER

mysql5.6 文档关于trigger的创建语法图


简单实践:

往test_procedure表中插入新记录时,将新记录的name列记录在test_trigger表中


说明:

1、同一个schema(mysql中schema与database相同)中的触发器拥有同一命名空间,所以trigger的名字不能相同;此外,对同一个表,trigger_time与trigger_event对不能相同,即不能有AFTER INSERT的触发器A与AFTER INSERT的触发器B同时与一个表关联。

schema与database的关系:网友日志 Schema与Database的关系

2、(仅)在触发器定义体内,可用NEW与OLD使用触发时的新表与旧表,用NEW.colName与OLD.colName定位更新ROW的某列。对INSERT类型 仅NEW有效,对DELETE 类型仅OLD有效,对UPDATE 类型,两者均有效。

3、创建procedure、function、trigger等的结构体内,如有多条语句,可使用BEGIN...END复合语句。

查看当前数据库(或schema)的TRIGGER:

SHOW TRIGGERS;

查看某个TRIGGER:

SHOW CREATE TRIGGER triggerName;

删除某个TRIGGER:

DROP TRIGGER triggerName;


二、INDEX

mysql5.6 文档关于trigger的创建语法图


简单实践:创建索引、查看某个表上的索引、删除索引


说明:

1、DROP INDEX indexName也可放在ALTER语句后:ALTER TABLE tableName DROP INDEX indexName;

2、创建UNIQUE INDEX的列值不能相同,PRIMARY KEY实质是一个UNIQUE INDEX;

3、创建的index是在where条件判断中自动使用的,即where中的某列创建了index,则使用index查找。

INDEX优缺点:

优点:记录数大时,加快查询;缺点(也算不上缺点):insert或update时,速度稍慢,因为要对某些列进行索引。


0 0
原创粉丝点击