- 一、什么是存储过程
- 二、存储过程怎么创建
- 三、查看
- 四、执行
- 1、执行说明
- 2、开始执行
- 五、删除存储过程
- 六、Mysql高版本:this is incompatible with sql_mode=only_full_group_by 问题
一、什么是存储过程
二、存储过程怎么创建
- Mysql中存储过程和函数的写法
- 需求:
输入用户名,模糊查询,返回数量
- 执行,不报错就是创建成功了
CREATE PROCEDURE search_user_name ( #search_user_name为存储过程的名字IN search_name VARCHAR (20),#传入的参数OUT count_number INT #返回的参数
) READS SQL DATA #程序中包含读数据的语句
BEGINSELECTCOUNT(*) INTO count_numberFROM`user`WHERE`name` LIKE CONCAT('%', search_name, '%');END
三、查看
- mysql查看存储过程函数,函数查看同理,把
PROCEDURE
改为FUNCTION
即可
SELECT `name` FROM mysql.proc WHERE db = 'test' and `type` = 'PROCEDURE' #查看指定数据库test中的存储过程
SHOW PROCEDURE STATUS #查看所有数据库的存储过程
SHOW CREATE PROCEDURE search_user_name #查看存储过程的创建代码
四、执行
1、执行说明
- mysql中如何运行存储过程_MySQL存储过程如何操作
- 带返回值:Mysql带返回值与不带返回值的2种存储过程
2、开始执行
- 查询名字中带有
李
的用户的数量
CALL search_user_name('李', @nameCount);
SELECT @nameCount;
- 输出
@nameCount
2
五、删除存储过程
- MySQL删除存储过程(DROP PROCEDURE)
- sql语句:删除名为
search_user_name
的存储过程
DROP PROCEDURE search_user_name;
- 返回结果
[SQL]DROP PROCEDURE search_user_name;
受影响的行: 0
时间: 0.085s
- 删除之后再执行
SHOW CREATE PROCEDURE search_user_name
,名为 search_user_name 的存储过程不存在,提示如下
[SQL]SHOW CREATE PROCEDURE search_user_name[Err] 1305 - PROCEDURE search_user_name does not exist
六、Mysql高版本:this is incompatible with sql_mode=only_full_group_by 问题
- 如果运行的过程中报错:
[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
- 这个问题是由于Mysql的版本太高导致的。
- 百度输入 this is incompatible with sql_mode=only_full_group_by 搜索 点击搜索
- 或者 直接移步 5分钟学会MySQL-this is incompatible with sql_mode=only_full_group_by错误解决方案
- 或者 看我这篇 SQL报错:this is incompatible with sql_mode=only_full_group_by
本文链接:https://my.lmcjl.com/post/12655.html
展开阅读全文
4 评论