DELIMITER // 这个在mysql中是指定分隔符。默认都是;
DELIMITER ;// 这个就是改回;做为分隔符。
当头一棒。。
当我尝试最简单的一个存储过程的时候,给我报错 access denied for user 反正是拒绝访问。。
继续蹂躏google 终于发现,错误出自用户。当我更改我的工具链接路径为localhost的时候就好了。当初的那个是个% 貌似%是被拒绝连接的。
好了,终于执行了第一个存储过程
create procedure p() select * from testselect
执行,说影响0行。耗时0.000ms。。。。 局促不安的输入了另一条指令测试
call p();
结果出来了。哈哈,看来影响0行是因为刚只是存储了过程,并没有执行。哈哈
对了,这个方法名是大小写不敏感的,不要整了重复的名字出来
存储过程中才是合法的呢?你可以创建一个包含INSERT, UPDATE,DELETE, SELECT, DROP, CREATE, REPLACE包含等的语句。你唯一需要记住的是如果代码中如果有MySQL的扩充功能,那么改存储过程将不能被移植。
这里突然看到了很多的存储过程都用到了@sdf = ‘’ 等等的字样,这是什么东西呢。原来
全局变量
set global auto_increment_increment=1; — 设置序列的增长值
show global variables; — 显示所有的global变量
show global variables like ‘%test%’ — 查询包含test字符串的global变量
set session auto_increment_increment=1; — 设置序列的增长值
show variables; or show session variables; — 如果不指明, 默认使用session变量
show variables like ‘%test%’ or show session variables lile ‘%test%’ — 查询包含test字符串的session变量
基于会话变量实现的, 可以暂存值, 并传递给同一连接里的下一条sql使用的变量.
当客户端连接退出时,变量会被释放.
业务相关的变量定义太多,无法区分系统全局变量?