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

MySql存储过程的参数与影响列的名称相同,是否可能?

在MySQL中,存储过程的参数名称和影响列的名称是可以相同的。但是,这可能会导致一些混淆和不易理解的问题。为了避免这种情况,最佳实践是使用有意义的参数名称和列名称,以确保代码的可读性和可维护性。

例如,在以下存储过程中,参数名称和影响列名称相同:

代码语言:txt
复制
CREATE PROCEDURE update_employee_salary(IN salary INT)
BEGIN
   UPDATE employees SET salary = salary;
END;

在这个例子中,存储过程的参数名称和影响列名称都是salary。这可能会导致一些混淆,因为不清楚哪个salary是参数,哪个是列。

为了避免这种情况,可以使用更具描述性的名称,例如:

代码语言:txt
复制
CREATE PROCEDURE update_employee_salary(IN new_salary INT)
BEGIN
   UPDATE employees SET salary = new_salary;
END;

在这个例子中,参数名称是new_salary,而影响列名称是salary。这样代码更容易理解和维护。

总之,虽然MySQL允许存储过程的参数名称和影响列名称相同,但最佳实践是使用有意义的名称以提高代码的可读性和可维护性。

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

相关·内容

oraclemysql存储区别_存储过程和触发器区别和联系

总结一下oracle和mysql存储过程几种区别: 1.创建存储过程语句不同 2.创建函数语句不同 3.传入参数写法不同 4.包声明方式 5.存储过程返回语句不同 6.存储过程异常处理不同...mysql使用先删除老存储过程,然后再创建新存储过程. 2. oracle 存储过程可以定义在package中,也可以定义在Procedures中....Mysql存储过程不支持这种定义方法.需要定义变量实际类型和长度. oracle 参数类型in/out/inout写在参数名后面....Mysql: 没有NO_DATA_FOUND这个属性.但可是使用FOUND_ROWS()方法得到select语句查询出来数据.如果FOUND_ROWS()得到值为0,就进入异常处理逻辑. 9.在存储过程中调用存储过程方式不同...oracle Procedure_Name(参数); mysql Call Procedure_Name(参数); MYSQL存储过程调用存储过程,需要使用Call pro_name(参数).

1.2K10

优化器成本记录表|全方位认识 mysql 系统库

对成本常量值修改影响类似于全局变量修改,只对修改之后新连接生效,对修改之前已经建立连接不生效(无论是否执行过FLUSH OPTIMIZER_COSTS语句)。...ENGINE_NAME:此成本估算常量适用存储引擎名称名称不区分大小写。如果该值是缺省值,则表示适用于所有存储引擎。...该旨在为不同存储设备类型指定不同成本估算常量,例如:为机械硬盘固态硬盘指定不同估算常量值。目前该字段未使用,目前唯一有效值为0。...例如:假设内存访问成本低于磁盘访问成本。在这种情况下,在服务器启动时还未完成将数据读入缓冲池之前之后,两次执行相同查询您可能会得到不同计划。...对io_block_read_cost和memory_block_read_cost参数更改可能会为查询计划带来收益,例如:在所有其他条件都相同情况下,将io_block_read_cost值设置为大于

82820

关系型数据库 MySQL 你不知道 28 个小技巧

但是,如果只改变字符集,没有必要把配置过程重新执行一遍,在这里,一个简单方式是 修改配置文件。在 Windows 中,MySQL 配置文件名称为 my.ini,该文件在 MySQL 安装目录下面。...16、存储过程参数不要与数据表中字段名相同。 在定义存储过程参数列表时,应注意把参数数据库表中字段名区别开来,否则将出 现无法预期结果。 17、存储过程参数可以使用中文吗?...一般情况下,可能会出现存储过程中传入中文参数情况,例如某个存储过程根据用户 名字查找该用户信息,传入参数可能是中文。...,则可能会对 MySQ L服务器造成很大影响。...日志既会影响 MySQL 性能,又会占用大量磁盘空间。因此,如果不必要,应尽可能少地 开启日志。根据不同使用环境,可以考虑开启不同日志。

1.7K40

MySQL基础及原理

如果创建唯一约束时未指定名称,如果是单列,就默认和列名相同;如果是组合,就默认和组合中一个列名相同。也可以自定义唯一性约束名。...从表外键主表被参考列名可以不相同,但数据类型必须相同,逻辑意义必须一致。如果类型不一致,创建子表时就会报错。...[NOT] DETERMINISTIC :指明存储过程执行结果是否确定。DETERMINISTIC表示结果是确定。每次执行存储过程时,相同输入会得到相同输出。...存储过程和函数查看、修改、删除 查看 创建完之后,怎么知道我们创建存储过程存储函数是否成功了呢?...相关数据变更,可能会导致触发器出错。 特别是数据表结构变更,都可能会导致触发器出错,进而影响数据操作正常运行。这些都会由于触发器本身隐蔽性,影响到应用中错误原因排查效率。

3.8K20

MySQL-进阶

那些被经常使用查询可以被定义为视图,从而使得用户不必为以后操作每次指定全部条件 数据独立 视图可帮助用户屏蔽真实表结构变化带来影响 二、存储过程 介绍 存储过程是事先经过编译并存储在数据库中一段...存储过程思想上很简单,就是数据库SQL语言层面的代码封装重用 特点 封装,复用 可以接收参数,也可以返回数据 减少网络交互,效率提升 创建 create procedure 存储过程名称([参数列表]...='xxx';--查询指定数据存储过程及状态信息 show create procedure 存储过程名称;--查询某个存储过程定义 删除 drop procedure [if exists] 存储过程名称...存储函数是有返回值存储过程存储函数参数只能是in类型。...聚集索引不同,二级索引通常是非唯一,并且以相对随机顺序插入二级索引。同样,删除和更新可能影响索引树中不相邻二级索引页,如果每一次都操作磁盘,会造成大量磁盘IO。

99720

Mysql数据库基础知识总结,结构分明,内容详细

从系统架构层次上看,MySQL 数据库系统从大到小依次是 数据库服务器 、 数据库 、 数据表 、数 据表 。...删除视图语法是: DROPVIEWIFEXISTS视图名称; 2.存储过程函数 a. 存储过程理解 存储过程英文是 Stored Procedure 。...[NOT] DETERMINISTIC :指明存储过程执行结果是否确定。DETERMINISTIC表示结果是确定 。每次执行存储过程时,相同输入会得到相同输出。...,不影响存储过程或函数功能,只是修改相关特性。...特别是数据表结构变更,都可能会导致触发器出错,进而影响数据操作正常运行。这些都会由于触 发器本身隐蔽性,影响到应用中错误原因排查效率。

64230

Server层表级别对象字典表 | 全方位认识 information_schema

如果自存储程序创建以来从未修改过,则该CREATED相同 SQL_MODE:表示创建或修改存储程序时MySQL Serversql_mode值(该字段为 "MySQL extension"...SPECIFIC_NAME:存储过程或函数名称 ORDINAL_POSITION:1,2,3,...等大于0数字用于存储过程和函数参数个数,0用于函数中RETURNS子句 PARAMETER_MODE...:有效值为IN,OUT,INOUT(存在RETURNS子句返回数据时该值为NULL) PARAMETER_NAME:存储过程或函数参数名称(存在RETURNS子句返回数据时该值为NULL) DATA_TYPE...COLLATION_NAME:COLUMNS表相同 DTD_IDENTIFIER:字段定义数据类型(包含长度和其他字段属性) ROUTINE_TYPE:程序类型,是存储过程还是函数等 PS:对于存储过程或函数存在连续参数时...它返回值不是一个真实参数(可能是一堆字符串数据),所以ORDINAL_POSITION值记录为0,且PARAMETER_NAME和PARAMETER_MODE值记录为NULL,因为此时函数返回值没有参数名称

1K20

mysql几种存储引擎介绍

有的表简单,有的表复杂,有的表根本不用来存储任何长期数据,有的表读取时非常快,但是插入数据时去很差;而我们在实际开发过程中,就可能需要各种各样表,不同表,就意味着存储不同类型数据,数据处理上也会存在着差异...2.如果数据是临时,而且要求必须立即可用,那么就可以存放在内存表中。 3.存储在Memory表中数据如果突然丢失,不会对应用服务产生实质负面影响。 Memory同时支持散索引和B树索引。...Merge存储引擎使用场景。 对于服务器日志这种信息,一般常用存储策略是将数据分成很多表,每个名称特定时间端相关。...与其编写这些可能出现错误查询,不如将这些表合并起来使用一条查询,之后再删除Merge表,而不影响原来数据,删除Merge表只是删除Merge表定义,对内部表没有任何影响。...(1)选择标准可以分为: (2)是否需要支持事务; (3)是否需要使用热备; (4)崩溃恢复:能否接受崩溃; (5)是否需要外键支持; 然后按照标准,选择对应存储引擎即可。

72640

告诉你38个MySQL数据库小技巧!

修改配置文件中default-character-set和character-set-server参数值,将其改为想要字 符集名称,如gbk、gb2312、latinl等,修改完之后重新启动MySQL...23、MySQL存储过程和函数有什么区别? 在本质上它们都是存储程序。函数只能通过return语句返回单个值或者表对象;而存储过程 不允许执行return,但是可以通过out参数返回多个值。...26、存储过程参数不要与数据表中字段名相同。 在定义存储过程参数列表时,应注意把参数数据库表中字段名区别开来,否则将出 现无法预期结果。 27、存储过程参数可以使用中文吗?...一般情况下,可能会出现存储过程中传入中文参数情况,例如某个存储过程根据用户 名字查找该用户信息,传入参数可能是中文。...日志既会影响MySQL性能,又会占用大量磁盘空间。因此,如果不必要,应尽可能少地 开启日志。根据不同使用环境,可以考虑开启不同日志。

2.6K10

MySQL数据库实用技巧

但是,如果只改变字符集,没有必要把配置过程重新执行一遍,在这里,一个简单方式是 修改配置文件。在Windows中,MySQL配置文件名称为my.ini,该文件在MySQL安装目录下面。...修改配置文件中default-character-set和character-set-server参数值,将其改为想要字 符集名称,如gbk、gb2312、latinl等,修改完之后重新启动MySQL...26、存储过程参数不要与数据表中字段名相同。   在定义存储过程参数列表时,应注意把参数数据库表中字段名区别开来,否则将出 现无法预期结果。 27、存储过程参数可以使用中文吗?   ...一般情况下,可能会出现存储过程中传入中文参数情况,例如某个存储过程根据用户 名字查找该用户信息,传入参数可能是中文。...日志既会影响MySQL性能,又会占用大量磁盘空间。因此,如果不必要,应尽可能少地开启日志。根据不同使用环境,可以考虑开启不同日志。

2.5K10

告诉你 38 个 MySQL 数据库小技巧!

但是,如果只改变字符集,没有必要把配置过程重新执行一遍,在这里,一个简单方式是 修改配置文件。在 Windows中,MySQL 配置文件名称为 my.ini,该文件在 MySQL 安装目录下面。...26 存储过程参数不要与数据表中字段名相同 在定义存储过程参数列表时,应注意把参数数据库表中字段名区别开来,否则将出 现无法预期结果。...27 存储过程参数可以使用中文吗 一般情况下,可能会出现存储过程中传入中文参数情况,例如某个存储过程根据用户 名字查找该用户信息,传入参数可能是中文。...,则可能会对 MySQL 服务器造成很大影响。...这种方法备份出来数据恢复也很简单,直接复制回原来数据库 34 平时应该打开哪些日志 日志既会影响 MySQL 性能,又会占用大量磁盘空间。因此,如果不必要,应尽可能少地开启日志。

2.6K40

37 个 MySQL 数据库小技巧,不看别后悔!

修改配置文件中default-character-set和character-set-server参数值,将其改为想要字 符集名称,如gbk、gb2312、latinl等,修改完之后重新启动MySQL...23、MySQL存储过程和函数有什么区别? 在本质上它们都是存储程序。函数只能通过return语句返回单个值或者表对象;而存储过程 不允许执行return,但是可以通过out参数返回多个值。...26、存储过程参数不要与数据表中字段名相同。 在定义存储过程参数列表时,应注意把参数数据库表中字段名区别开来,否则将出 现无法预期结果。 27、存储过程参数可以使用中文吗?...一般情况下,可能会出现存储过程中传入中文参数情况,例如某个存储过程根据用户 名字查找该用户信息,传入参数可能是中文。...日志既会影响MySQL性能,又会占用大量磁盘空间。因此,如果不必要,应尽可能少地 开启日志。根据不同使用环境,可以考虑开启不同日志。

1.8K20

MySQL存储引擎总结

有的表简单,有的表复杂,有的表根本不用来存储任何长期数据,有的表读取时非常快,但是插入数据时去很差;而我们在实际开发过程中,就可能需要各种各样表,不同表,就意味着存储不同类型数据,数据处理上也会存在着差异...2.如果数据是临时,而且要求必须立即可用,那么就可以存放在内存表中。 3.存储在Memory表中数据如果突然丢失,不会对应用服务产生实质负面影响。 Memory同时支持散索引和B树索引。...Merge存储引擎使用场景。 对于服务器日志这种信息,一般常用存储策略是将数据分成很多表,每个名称特定时间端相关。...与其编写这些可能出现错误查询,不如将这些表合并起来使用一条查询,之后再删除Merge表,而不影响原来数据,删除Merge表只是删除Merge表定义,对内部表没有任何影响。...(1)选择标准可以分为: (2)是否需要支持事务; (3)是否需要使用热备; (4)崩溃恢复:能否接受崩溃; (5)是否需要外键支持; 然后按照标准,选择对应存储引擎即可。

1.7K60

MySQL命名、设计及使用规范--------来自标点符MySQL命名、设计及使用规范》

需要在MySQL配置文件my.ini中增加 lower_case_table_names = 1即可。 表命名 同一个模块表尽可能使用相同前缀,表名称可能表达含义。...唯一约束:uk_表名称_字段名。(应用中需要同时有唯一性检查逻辑。) 触发器命名 trg_表名_操作。 函数过程命名 采用动词+名词形式表达其含义。...单条记录大小禁止超过8k(长度(中文)*3(UTF8)+长度(英文)*1) datetimetimestamp有什么不同? 相同点:TIMESTAMP显示格式DATETIME相同。...在存储或检索过程中不进行大小写转换。 VARCHAR值为可变长字符串。长度可以指定为0到65,535之间值。(VARCHAR最大有效长度由最大行大小和使用字符集确定。...为了修补这个问题,可以继续引入当前页码以及在上次翻页以后是否有插入/删除等影响总记录数操作并进行缓存 其他变种方式: 1 select * from table

5.6K20

学习 MySQL 需要知道 28 个小技巧

存储过程: 不允许执行 return,但是可以通过 out 参数返回多个值; 限制相对就比较少; 一般是作为一个独立部分来执行; 14、存储过程内容可以改变吗?...16、存储过程参数不要与数据表中字段名相同。 在定义存储过程参数列表时,应注意把参数数据库表中字段名区别开来,否则将出 现无法预期结果。 17、存储过程参数可以使用中文吗?...一般情况下,可能会出现存储过程中传入中文参数情况,例如某个存储过程根据用户 名字查找该用户信息,传入参数可能是中文。...这时需要在定义存储过程时候,在后面加 上 character set gbk,不然调用存储过程使用中文参数会出错,比如定义 userInfo 存储过程,代码 如下: CREATE PROCEDURE...日志既会影响 MySQL 性能,又会占用大量磁盘空间。因此,如果不必要,应尽可能少地 开启日志。 根据不同使用环境,可以考虑开启不同日志。

1.1K20

学习 MySQL 需要知道 28 个小技巧

存储过程: 不允许执行 return,但是可以通过 out 参数返回多个值; 限制相对就比较少; 一般是作为一个独立部分来执行; 14、存储过程内容可以改变吗?...16、存储过程参数不要与数据表中字段名相同。 在定义存储过程参数列表时,应注意把参数数据库表中字段名区别开来,否则将出 现无法预期结果。 17、存储过程参数可以使用中文吗?...一般情况下,可能会出现存储过程中传入中文参数情况,例如某个存储过程根据用户 名字查找该用户信息,传入参数可能是中文。...这时需要在定义存储过程时候,在后面加 上 character set gbk,不然调用存储过程使用中文参数会出错,比如定义 userInfo 存储过程,代码 如下: CREATE PROCEDURE...日志既会影响 MySQL 性能,又会占用大量磁盘空间。因此,如果不必要,应尽可能少地 开启日志。 根据不同使用环境,可以考虑开启不同日志。

98940

大佬整理mysql规范,分享给大家

需要在MySQL配置文件my.ini中增加 lower_case_table_names = 1即可。 表命名 同一个模块表尽可能使用相同前缀,表名称可能表达含义。...单条记录大小禁止超过8k(长度(中文)_3(UTF8)+长度(英文)_1) datetimetimestamp有什么不同? 相同点: TIMESTAMP显示格式DATETIME相同。...语句设计规范 使用预编译语句 只传参数,比传递SQL语句更高效 一次解析,多次使用 降低SQL注入概率 避免隐式转换 会导致索引失效 充分利用前缀索引 必须是最左前缀 不可能同时用到两个范围条件 不使用...为了修补这个问题,可以继续引入当前页码以及在上次翻页以后是否有插入/删除等影响总记录数操作并进行缓存 select * from table where id >= (select id from table...IO、消耗网络带宽 无法使用覆盖索引 减少表结构变更带来影响 因为大,select/join 可能生成临时表 UPDATE、DELETE语句不使用LIMIT INSERT语句必须显式指明字段名称,不使用

1.1K20
领券