MySQL 触发器 索引 MySQL 触发器 索引 ? 博文目录 ?触发器 索引 ? 触发器是MySQL响应insert,update,delete语句时自动执行的一条SQL语句,只有表支持触发器,视图不支持。 触发器需要的信息 唯一的触发器名称(一个表中唯一) 触发器关联的表 触发器应该响应的
MySQL 触发器 索引MySQL 触发器 索引
?
博文目录
- ?触发器
- 索引
?
触发器是MySQL响应insert,update,delete语句时自动执行的一条SQL语句,只有表支持触发器,视图不支持。
触发器需要的信息
- 唯一的触发器名称(一个表中唯一)
- 触发器关联的表
- 触发器应该响应的事件(insert?update?delete?)
- 触发器何时执行(处理之前或处理之后)
- 一个表的一个事件最多只能有两个触发器,所以一个表最多有6个触发器
- 如果响应之前的触发器执行失败,响应则不会执行;响应之前的触发器或响应执行失败,响应之后的触发器不会执行
insert触发器
create trigger tr_insert_tableA after insert on t_tableA for each row insert into t_tableB(val) values (new.val);
在insert触发器内,可引用一个名为new的虚拟表,访问被插入的行
在before insert触发器中,new中的值也可以被更新(new可以取到插入的值)
对于自动增长的列,new在insert执行之前的值为0,在执行之后是新的自动生成的值
获取刚刚插入的自动生成的主键值
create trigger t_insert_pk_tableA after insert on t_tableA for each row select new.id into @id;
insert into t_tableA(val) values("abc"); select @id;
delete触发器
delimiter // create trigger t_delete_tableA after delete on t_tableA for each row begin insert into t_tableB(val) values(old.val); end // delimiter ; delete from t_tableA where id=2;
在delete触发器代码中,可以引用了一个old的虚拟表,访问被删除的行
old表中值全是只读的,不能更新
update触发器
将A表中修改后的名字都改为大写
delimiter // create trigger t_update_tableA before update on t_tableA for each row begin set new.val=upper(new.val); end // delimiter ; update t_tableA set val='xyz' where id=1; select * from t_tableA;
在update触发器代码中,可以引用一个名为old的虚拟表访问以前的值,引用new表访问新的值
在before update触发器中,new中值允许被更新
old表中的值是只读的,不能更改
删除触发器
drop trigger tr_insert_tableA;
索引
索引是优化数据库查询速度的重要途径
索引类型
普通索引:最基本的索引,没有唯一性之类的限制
create index valindex on t_tableA(val(20)); create index products_index on products(prod_name(25),prod_price);
唯一索引:所有的索引列只能出现一次,保持唯一性
create unique index valindex2 on t_tableB(val(20));
主键索引:主键索引是一种特殊的唯一索引,在主键建立时自动创建
全文索引:全文所以可以在varchar或text类型上创建
索引的缺点
- 虽然索引大大提高了查询速度,但会降低更新表的速度,比如对表的insert,update,delete操作,因为更新表时,MySQL不仅仅要保存数据,还要保存索引文件
- 建立索引会占用磁盘空间。如果在一个大表上创建了多种索引组合,索引文件会膨胀的很快。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于架构原理的相关内容,MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

方法:1、利用right函数,语法为“update 表名 set 指定字段 = right(指定字段, length(指定字段)-1)...”;2、利用substring函数,语法为“select substring(指定字段,2)..”。

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ドリームウィーバー CS6
ビジュアル Web 開発ツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール
