重蔚自留地php学习第三十九天——关于mysql事物触发器函数过程的总结

数据备份

对数据表内容进行备份

备份:select [*/字段列表] into outfile 文件路径 [字段处理] [行处理] from 表

还原:load data infile 文件路径 into 表 [字段处理] [行处理]

备份 ---------------》 数据库 -> 外部文件:①sql语法是正确的;②SQL语句是有效的

把表内数据给清理

还原 ---------------》 外部文件 –> 数据库

 

对表结构进行备份(也包含数据)

备份:mysqldump.exe –h –P –u –p 数据库 [数据表 数据表…] > 文件路径 (通常以.sql)

还原:mysql.exe –h –P –u –p 数据库 < 文件路径

mysql进入之后:source 文件路径

 

事务处理

自动处理:autocommit = on(默认),改成off手动处理

手动处理:只在需要使用事务的地方开启

开启事务:start/begin transaction;

---SQL操作

设置回滚点:savepoint 回滚点名字

---SQL操作

回滚到回滚点:rollback to 回滚点名字

--

回滚或者提交:rollback/commit

 

事务处理四大特点:

原子性:一个事务是一个整体,要么全部成功,要么全部失败

一致性:在事务处理的过程前后,数据是一致的。在做事务处理的时候,数据库中的数据不会被改变,所以是一致的。

隔离性:一个事务的操作,不会影响另外事务的操作(两个事务不能针对同一行记录)

永久性:一旦事务提交,那么对数据的修改是永久性的,不可逆

 

触发器

语法:create  trigger 触发器名字 触发时间 触发类型 on 表名 for each row

begin

//触发体,每一行都需要语句结束符,只能是分号

end

触发器是自动被调用

触发器时间:before和after

触发类型:insert,update,delete

 

变量:系统变量和自定义变量

系统变量访问:select @@变量名

重蔚自留地php学习第三十九天——关于mysql事物触发器函数过程的总结

修改系统变量:set 变量名 = 值;set global 变量名 = 值;

 

自定义变量:set @变量名 = 值;set @变量名 := 值;select 字段列表 from 表名 into @变量列表;declare 变量名 数据类型;

@变量名:全局变量,所有地方都可以使用

变量名:局部变量,只能在函数内

 

函数:系统函数和自定义函数

语法:create function 函数名(参数列表) returns 数据类型

begin

//函数体

//分支结构+循环结构

//return 数据

end

 

参数:参数必须有数据类型:变量名 数据类型

函数调用:select 函数名(参数列表)

 

存储过程

语法:create procedure 过程名(参数列表)

begin

//过程体

end

 

参数列表:类型 变量名 数据类型

类型:in,out,inout

过程访问:call  过程名(参数列表)

索引:mysql几大索引

 

用户管理

创建用户:create user 用户名@主机名 indentified by 密码

赋予权限:grant 权限列表 on 库.表 to 用户名@主机名

收回权限:revoke 权限列表 on 库.表 from 用户名@主机名

删除用户:drop user 用户名@主机名

 

商品表:pro_goods

订单表:pro_order

 

在插入订单前,先判断商品库存是否足够,如果不足,则不能生成订单,如果足则可以。

before insert:判断库存是否足够,并不终止insert语句的执行

after insert:判断before insert的判断结果,如果前面判断失败,那么删除订单记录

=========》

after insert:商品表库存先减少。判断商品表库存是否大于0,如果小于0,把商品的库存回退到之前的数据,然后将当前的这条订单记录给删除。

使用before insert来对数据进行判断,如果判断失败,则想办法不让insert语句执行。

重蔚自留地php学习第三十九天——关于mysql事物触发器函数过程的总结

本文来自投稿,不代表科技代码立场,如若转载,请注明出处https://www.cwhello.com/10430.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
上一篇 2018年10月26日 00:00
下一篇 2018年10月26日 14:10

相关推荐

  • PHP微信开发:如何实现语音识别

    随着移动互联网的普及,微信作为一款社交软件,越来越多的人开始使用,并且微信开放平台也给开发者带来了众多的机会。近年来,随着人工智能技术的发展,语音识别技术逐渐成为了移动端开发的热门技术之一。在微信...

    2023年5月18日
    05
  • 值得一看!高级PHP工程师必备的编码技巧及思维

    好的开发者通常以代码质量来定义。在软件行业,写好的代码意味着在在测试,更新,扩展或者修复漏洞中省钱。本文,我将向你展示一些现实生活中技巧和想法的例子,来帮助你清理你的逻辑代码,重构它,让它变得更健...

    2022年6月18日 PHP自学教程
    0114
  • PHP与NoSQL数据库的对比

    PHP和NoSQL数据库都是现今非常流行的技术,前者是一种流行的服务器端编程语言,后者则是一种非关系型数据库,主要用于处理半结构化和非结构化数据。PHP和NoSQL数据库分别在不同领域得到了广泛应用,但它们之间的...

    2023年5月19日
    00
  • 详解PHP论坛实现积分系统的思路代码

    首先在用户表定义一个积分字段;然后创建一个等级表,主要字段有等级名,上限积分和下限积分;再根据用户的行为进行积分累加;最后根据判断用户积分在哪个等级范围,从而得出用户等级。用户表CREATE TABLE `bbs`....

    2022年6月12日
    0161
  • 数据库约束定义及分类

    约束 约束定义及分类: Constraint,对数据库中的数据做要求,以保证设计出来的数据库及其中的数据真实可用。 约束分为 行完整性约束(三范式) 列完整性约束。 主键约束 Alter table 表名 add constraint PK_表...

    2017年10月23日
    0303
  • PHP实现邮件系统的用户管理功能。

    随着网络通信的发展,邮件已成为人们日常生活和工作中最常用的通讯工具之一。随着电子邮件的普及,相应的邮件系统不断涌现,使得我们可以轻松地进行邮件的收发、存储和管理等操作。而PHP作为一种网页开发语言,也...

    2023年5月30日
    00
  • PHP中如何进行分布式事务处理?

    随着互联网应用的不断发展,分布式系统已经越来越普遍。在分布式系统中,一个事务可能会涉及多个组件或服务,这就带来了分布式事务处理的问题。PHP作为一门常用的服务器端编程语言,也需要解决分布式事务处理问题...

    2023年5月17日
    05
  • PHP与数据库存储管理的集成。

    随着互联网的发展,现代企业的业务已经越来越依赖于计算机的支持与管理,而数据库的重要性也愈发凸显。在这种情况下,无论是企业还是程序员都不可避免地需要使用数据存储管理的技术手段。PHP语言作为互联网最广泛...

    2023年5月21日
    01

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息