您的位置:首页 > 数据库 > MySQL

MySQL存储过程相关

2016-09-14 11:42 337 查看

一、存储过程概念:

存储过程可以说是一个记录集吧,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。

二、MySQL常用导出导入功能指令

mysql常用导出数据的命令:

1.mysql导出整个数据库:

mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql  

mysqldump -hlocalhost -uroot hqgr> hqgr.sql (如果root用户没用密码可以不写-p,当然导出的sql文件你可以制定一个路径,未指定则存放在mysql的bin目录下)

2.mysql导出数据库一个表:

  mysqldump -hhostname -uusername -ppassword database tablename> 导出的文件名

  mysqldump -hlocalhost -uroot hqgr t_ug_user> user.sql

3.mysql导出一个数据库结构:

 mysqldump -hhostname -uusername -ppassword -d –add-drop-table databasename>d:hqgrstructure.sql

 -d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table

4.如果需要导出mysql里面的函数或者存储过程:

mysqldump -hhostname -uusername -ppassword -ntd -R databasename > backupflie.sql

mysqldump -hlocalhost -uroot -ntd -R hqgr > hqgr.sql

其中的 -ntd 是表示导出存储过程;-R是表示导出函数

mysql常用导入数据的命令:

1.mysql命令
mysql -hhostname -uusername - ppassword databasename < backupfile.sql
2.source命令
mysql>source backupfile.sql


三、MySQL存储过程常用指令

查看存储过程状态信息:

show procedure status


修改存储过程的definer :

update mysql.proc set definer='root@localhost' where db='db_name';


修改sql security:

sql secuirty的值决定了调用存储过程的方式,取值 :definer或者invoker

definer:在执行存储过程前验证definer对应的用户如:root@192.168.2.%是否存在,以及是否具有执行存储过程的权限,若没有则报错

invoker:在执行存储过程时判断inovker即调用该存储过程的用户是否有相应权限,若没有则报错。

alter procedure pro_name sql security invoker;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql 存储