设为首页 收藏本站
查看: 616|回复: 0

[经验分享] mysql高级 triggers,stored procedure,view,index,transaction,lock.

[复制链接]

尚未签到

发表于 2016-10-18 09:33:53 | 显示全部楼层 |阅读模式
  版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan

triggers,stored procedure,index,view,transaction,lock

有很大部分是根据手册写的,之所以php和mysql的书如此之少,关键是手册写的太好了…哎.只做最简单的介绍.需要详细的话,看手册,就把这文章当做要学的列表吧 : )---myz




触发—TRIGGERS

这个我的理解就是外键级联删除的升级.前些天有个东西需要做外键级联添加…这个就需要triggers了.


创建

CREATE TABLE testTable(id INT);
CREATE TRIGGER 触发器名 BEFORE INSERT ON testTable


INSERT INTO testTable2 SET name=NEW.id

这里粗略讲一下.BEFORE是规定在INSERT ON testTable 之前执行还是之后执行


INSERT ON testTable就是testTable的插入事件,当然还有update和delete


后面的就是触发器要执行的程序,可以些多条语句.用BEGIN…END括起来.




存储程序—STORED PROCEDURE

这个分为procedure 和function,其实就是功能上的差异,前者简单些.


都有create drop alter语法.还有show 的语法.


delimiter //
CREATE PROCEDURE newProc (OUT param1 INT)
BEGIN
SELECT COUNT(*) INTO param1 FROM t;
END
//
delimiter ;
CALL newProc(@test)

SELECT @test;

再加上触发器,完美…………




索引—INDEX

适当的建立索引,多了影响速度,少了也会影响速度.


在列d和a上添加索引


ALTER TABLE t2 ADD INDEX (d), ADD INDEX (a);

在表t中删除d列的索引

ALTER TABLE t DROP INDEX d


FULLTEXT索引


FULLTEXT索引只能对CHAR, VARCHAR和TEXT列提供索引,并且只能在MyISAM表中,这个用在搜索文章内容的时候很有用.




视图—VIEW

创建,修改,删除基本上和表的相同


CREATE VIEW v AS SELECT id, name, height,width,height*width AS area FROM t



事务—TRANSACTION (InnoDB中使用)

提交
START TRANSACTION
SELECT * FROM t;
INSERT INTO t SELECT * FROM t;
INSERT INTO t2 SELECT * FROM t2;
COMMIT
撤消
START TRANSACTION

ROLLBACK


锁—LOCK

LOCK TABLES和UNLOCK TABLES


读锁

LOCK TABLES t READ;

SELECT * FROM t;

---ERROR 1100: Table 't' was not locked with LOCK TABLES

写锁

LOCK TABLES t WRITE;

INSERT INTO t SELECT * FROM t;

---ERROR 1100: Table 't' was not locked with LOCK TABLES

解锁

LOCK TABLES t WRITE;

SELECT * FROM t;

UNLOCK TABLES;

v

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-287796-1-1.html 上篇帖子: windows下利用mysqldump备份MySql数据库 下篇帖子: mysql获得刚插入数据的ID方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表