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