首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Mysql存储过程中的可选参数

MySQL存储过程中的可选参数有很多,包括:

  • SQL_CACHE: 用于缓存结果集的查询缓存;
  • SQL_NO_CACHE: 不对结果集进行查询缓存;
  • SQL_SMALL_RESULT: 如果请求结果集只有较少行,则返回它们,而不是生成较慢的全表扫描;
  • SQL_BIG_RESULT: 如果请求结果集有很多行,则返回它们,而不是生成较慢的全表扫描;
  • SQL_BUFFER_RESULT: 如果结果集很大,则在内存缓冲区而非磁盘存储;
  • SQL_NO_TOTAL: 返回总行数,而不计算行数;
  • SQL_CALC_FOUND_ROWS: 在SELECT语句中计算查询返回的总行数而不实际获取它们;
  • SQL_NO_LOCK: 如果表处于读已锁定状态,则返回下一个可用的行;
  • SQL_UNLOCK: 如果表处于已锁定的状态,则释放任何已锁定的锁定;
  • SQL_ATTR_CURSOR_TYPE: 指定光标的类型(只读或读/写);
  • SQL_ATTR_READ_ONLY: 如果启用,则返回一个只读查询;

以下是一个实例存储过程:

代码语言:txt
复制
DELIMITER $$
CREATE PROCEDURE my_procedure
BEGIN
  SET @a = 'MyText';
  PREPARE statement FROM CONCAT('SELECT * FROM my_table WHERE name LIKE CONCAT("%",@a,"%");');
  EXECUTE statement;
END $$
DELIMITER ;

在这个存储过程中,我们定义了五个参数,包括@a@b@c来存储可变参数的值。我们使用'@'符号来存储可变参数的别名和实际参数值,并使用'符号来指定@b@cmy_table表格中的name'列中的条件。我们最后在查询中使用'WHERE name LIKE %a%来指定查询名称中的%a%来匹配变量@a`的值。

以上就是在MySQL存储过程中可选择的参数。根据需要,可以选择不同的参数以优化查询的结果。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

存储过程中指定参数

通过指定过程参数,调用程序可以将值传递给过程主体。 如果将参数标记为 OUTPUT 参数,则过程参数还可以将值返回给调用程序。...一个过程最多可以有 2100 个参数,每个参数都有名称、数据类型和方向。 还可以为参数指定默认值(可选)。 将值传递给参数 使用过程调用提供参数值必须为常量或变量,不能将函数名称作为参数值。...变量可以是用户定义变量或系统变量(如 @@spid)。 下列示例演示如何将参数值传递给过程 uspGetWhereUsedProductID。...datetime; SET @CheckDate = GETDATE(); EXEC dbo.uspGetWhereUsedProductID 819, @CheckDate; GO 在存储过程中定义参数...1.需要指定参数名称 2.指定参数数据类型 3.可以指定参数默认值 4.可以指定参数方式(默认为输入参数) 示例1: USE AdventureWorks2012; GO IF OBJECT_ID

1.2K20

【问答】MySQL存储过程中 ?? 和 是什么?

在平时工作中,有时我们会编写存储过程。在存储过程中我们会在网上看到一些例子,在例子中会有类似 DELIMITER ??...我们在MySQL客户端写完SQL时会以分隔符;来作为一条完整SQL语句终止符,比如: 但是在存储过程中我们会在一个存储过程内写很多以;结束语句,设置变量,循环,具体多个SQL语句等都会以;结束,...比如你想写一个包含两个查询SQL语句存储过程。...原因就在于它(MySQL客户端)把下面这段SQL当成一条完整语句交给服务器执行了。...时,MySQL客户端会一直解析到符号??才认为你这条语句结束了。 此时你已经成功创建了一个存储过程了。然后你可以把分隔符重新改为默认;,然后执行存储过程。

2.3K10

MySQL如何获取存储过程参数

MySQL如何获取存储过程参数? 前两天有个小伙伴问我如何查看MySQL存储过程参数问题,这个问题还真把我问住了。于是查了查官方文档,把查看结果分享出来,希望对大家有帮助吧。...01 MySQL 存储过程参数 MySQL存储过程,可以理解成一段代码,每次调用这段代码,可以帮助你实现对应功能,例如下面这段代码,就是帮助我们连续插入1000个记录在表t里面: delimiter...02 获取参数2种方案 方法一、使用mysql.proc表(仅限MySQL5.7及以下版本) 在MySQL元信息表中,可以通过mysql.proc表去查看一个存储过程参数,如下: mysql...方法二:直接使用parameter表(MySQL5.7、MySQL8.0都适用) MySQLparameter表是专门记录函数和存储过程输入输出参数。...作为一名运维同学,可能需要考虑让你业务方尽可能存储过程、函数之类对象,从MySQL数据库中剥离出来,这样在运维过程中,可能会更加方便,MySQL性能会更好。

3.3K60

python 定义有可选参数元类

问题 你想定义一个元类,允许类定义时提供可选参数,这样可以控制或配置类型创建过程。...__init__(name, bases, ns) 讨论 给一个元类添加可选关键字参数需要你完全弄懂类创建所有步骤, 因为这些参数会被传递给每一个相关方法。...但是,如果需要接受其他关键字参数的话,这两个方法就要同时提供,并且都要提供对应参数签名。...默认 __prepare__() 方法接受任意关键字参数,但是会忽略它们, 所以只有当这些额外参数可能会影响到类命名空间创建时你才需要去定义 __prepare__() 方法。...通过使用强制关键字参数,在类创建过程中我们必须通过关键字来指定这些参数。 使用关键字参数配置一个元类还可以视作对类变量一种替代方式。

1.7K20

MySQL存储过程中包含HINT导致升级失败纪实

其系统中一套基于MySQL8.0.11版本核心报表平台,近期由于存在安全扫描漏洞,需要尽快将其升级到MySQL8.0.25及以上版本。...由于客户对MySQL新版本存在一定观望心理,以及对业务验证充分性待提升,客户最终选择升级到MySQL8.0.25。...接着,紧急定位MySQL错误日志,发现以下信息:初步定位到地方是,MySQL8.0.11升级到MySQL8.0.25时,涉及data dictionary变更,此时确实无法回滚。...2.无法回退原因 MySQL升级跨较大版本,一般指的是dd表变更,升级成功后MySQL机制就禁止回退。...在对bug修复和方案讨论验证过程中,万里数据库和客户革命友谊也得到了进一步增进。 此次升级经验和结果,也为万里数据库后期客户技术支持工作带来了更多经验借鉴和信心。

98830

技术分享 | MySQL 存储过程中只读语句超时怎么办?

---- MySQL 有一个参数叫 max_execution_time ,用来设置只读语句执行超时时间,但是仅对单独执行 select 语句有效;对于非单独执行 select 语句,比如包含在存储过程...那对这种非单独出现 select 语句,该如何控制超时时间呢? 先来看下参数 max_execution_time 设置后效果。...此参数设置后,select 语句如果执行时间过长,会直接被 cancel 掉,并且报错,如下所示: mysql> set @@max_execution_time=1000; Query OK, 0 rows...,按照手册上对参数 max_execution_time 解释,则不生效。...既然 MySQL 层面有这样限制,那只能从非 MySQL 层面来想办法。最直接有效就是写个脚本来主动 cancel 掉 select 语句。

1.4K30

java中给方法参数设置默认值,java设置可选参数

今天在调整一个定时任务时需要将固定写死查询日期通过外部传参来控制,如果没有传值给个默认值,于是了解了下java函数参数默认值在 Java 中,方法参数没有直接提供默认值功能,但可以通过方法重载或者使用可选参数方式实现类似的效果...2.可选参数(Optional Parameters):Java 8 引入了 java.util.Optional 类,可以使用它来实现可选参数功能。...b,则使用提供值 // 使用参数 a 和 value 进行处理逻辑}在这个例子中,myMethod 方法接受两个参数,其中第二个参数 b 是使用 Optional 类型声明...在方法内部,可以使用 Optional 类 orElse 方法获取参数 b 值,如果没有提供参数 b,则使用默认值 10。...请注意,这种方法也需要调用者在提供参数时使用 Optional 类型来包装可选参数。这些方法提供了一些方式来模拟默认参数行为,但它们并不是直接支持默认参数语言特性。

4.5K20

MySQL存储过程_MySQL创建存储过程

存储过程特点: 封装,复用, 可以把某一业务SQL封装在存储过程中,需要用到时候直接调用即可; 可以接收参数,也可以返回数据, 在存储过程中,可以传递参数,也可以接收返回值; 减少网络交互,提升效率,...如果将这些sql操作封装在存储过程中,只需网络交互一次可能就可以了; 存储过程基础语法 1、创建存储过程语法 CREATE PROCEDURE 存储过程名称 ([ 参数列表 ]) BEGIN --...delimiter 指定SQL语句结束符 存储过程中变量 在MySQL中,变量一般可分为分为三种类型: 系统变量、用户定义变量、局部变量; 一、系统变量 系统变量是MySQL服务器系统自身提供...很明显,不够灵活,通常来说,在实际业务中,我们更希望存储过程能够接收参数,并且返回处理结果,以便提供给后续业务逻辑使用,这就需要用到存储过程输入输出参数了; 五、存储过程输入输出参数使用 存储过程中使用到参数类型...循环语句在编程中经常被用到,常用于对批量数据进行循环处理,在mysql存储过程中,也提供了几种常用循环语句,包括:while循环,repeat循环,和loop循环; 1、while循环语句 while

22.2K21

MySQLMySQL存储引擎

不同存储引擎提供不同存储机制、索引技巧、锁定水平等功能。现在 许多不同数据库管理系统都支持多种不同数据引擎。MySQL核心就是存储引擎。...用户可以 根据不同需求为数据表选择不同存储引擎 可以使用 SHOW ENGINES 命令 可以查看Mysql 所有执行引擎我们 可以到 默认执行引擎是innoDB 支持事务,行级锁定和外键。...但是会占用和数据 量成正比内存空间。并且其内容会在MYSQL重新启动是会丢失。 Archive :非常适合存储大量独立,作为历史记录数据。因为它们不经常被读取。...BlackHole: 黑洞引擎,写入任何数据都会消失,一般用于记录 binlog 做复制中继 ERFORMANCE_SCHEMA存储引擎该引擎主要用于收集数据库服务器性能参数。...(在显示结果里参数engine后面的就表示该表当前用存储引擎): show create table student;   -- 创建新表时指定存储引擎: create table(...) engine

5.3K20

⑩⑤【DB】详解MySQL存储过程:变量、游标、存储函数、循环,判断语句、参数传递..

([参数]); 查看存储过程信息: -- 查询指定数据库存储过程及状态信息 SELECT * FROM INFORMATION_SCHEMA....变量 ①系统变量 系统变量: ⚪系统变量:是MySQL服务器提供,不是用户定义,属于服务器层面。分为全局变量(GLOBAL)、会话变量(SESSION)。...MySQL服务重新启动后,所设置全局变量都会重置,想要不失效,可以在配置文件/etc/my.cnf文件中配置。...条件判断语句IF 语法 : IF 条件1 THEN -- 执行逻辑 ELSEIF 条件2 THEN -- 可选 -- 执行逻辑 ELSE -- 可选 -- 执行逻辑...存储函数 存储函数: 存储函数是有返回值存储过程,存储函数参数只能是IN类型。

1.4K100
领券