mysql存储过程备份_mysql-数据备份与存储过程

本文详细介绍了MySQL存储过程的概念、用途、优缺点及创建、调用、删除的语法。此外,还讨论了不同数据处理方式的影响,并提供了示例。文章最后探讨了MySQL的数据备份与恢复方法,包括使用mysqldump进行备份和通过mysql命令恢复。
摘要由CSDN通过智能技术生成

修改隔离级别

修改全局的

set global transaction isolation level read committed;

或者:

set @@tx_isolation = "asasasasas-read";

修改局部

set session transaction isolation level read committed;

@@系统内置变量

@表示用户自定义的变量

存储过程

什么是存储过程

是任意的sql语句的组合,被放到某一个存储过程中,类似于一个函数,有一个函数名/参数/还有函数体.

用来干什么

其中可以包含任何的sql语句,逻辑处理,事务处理,所有的我们学过的sql语句都可以放到里面

三种数据处理方式

应用程序只关注业务逻辑,所有与数据相关的逻辑封装到mysql中

优点:应用程序要处理的事情变少了,可以减少网络传输

应用程序既要处理业务逻辑,还要编写sql语句

优点:降低了沟通成本,人力成本

缺点: 网络传输增加,sql语句编写非常复杂

通过ORM框架, 使用对象关系映射,自动生成sql语句并执行

优点:不需要在编写sql语句,提升了开发效率

缺点:不够灵活,应用程序开发者和数据库完全隔离,可能导致仅关注上层开发,而不清楚底层原理

# 语法

create procedure p_name(p_type p_name p_date_type)

begin

sql......

end

# p_type 参数的类型 in 输入 out 输出必须是一个变量,不能是值 inout 即可输出也可输入

# p_name 参数的名字

# p_data_type 参数的数据类型 如 int float

案例

delimiter |

create procedure a1(in a int, in b int, out c int)

begin

set c = a + b;

end |

delimiter ;

# 调用

set @res =0;

call a1(1,1,@res);

select * from @res;

# 删除

drop procedure 名称;

# 查看

show create procedure 名称

# 查看全部 例如 db库下的所有

select name from mysql.proc where db = 库名 and type = "PROCEDURE";

delimiter |

create procedure transfer2(in aid int,in bid int,in m float,out res int)

begin

declare exit handler for sqlexception

begin

# 异常处理代码

set res = 99;

rollback;

end;

start transaction;

update account set money = money - m where id = aid;

update account set money = moneys + m where id = bid;

commit;

set res = 1;

end|

delimiter ;

备份与恢复

# 备份

mysqldump.exe

mysqldump -u用户名 -p密码 数据库 表名1 表名2 .... > 文件路径....

# 注意 第一个表示数据库 后面全都是表名

mysqldump -uroot -p day41 student >

#备份多个数据库

mysqldump -uroot -p111 --databases day41 day40 > x3x.sql

#指定 --databases 后导出的文件包含 创建库的语句 而上面的方式不包含

#备份所有数据

mysqldump -uroot -p111 --all-databases > all.sql

#自动备份

linux crontab 指令可以定时执行某一个指令

# 恢复数据:

没有登录mysql

mysql < 文件的路径

已经登录了MySQL

source 文件路径

注意: 如果导出的sql中没有包含选择数据库的语句 需要手动加上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值