写了一个很简单的存储过程,发现执行了,但是表的数据没有改变,存储过程如下:

procedure sp_upd_update_jsgl(mc in varchar2,--名称

sm in varchar2--说明

)

is

begin

update jsgl set sm=sm where mc =mc ;

end

where后面的名称执行的时候mc=mc并不是jsgl.mc=mc 而是和1=1一样的参数,而参数mc和jsgl.mc产生了二义性,所以后面的参数修改成了jsgl.mc=mc

这个存储过程就变成了这样

procedure sp_upd_update_jsgl(mc in varchar2,--名称

sm in varchar2--说明

)

is

begin

update jsgl set sm=sm where jsgl.mc =mc ;

end ;

但是这里的sm这个字段并没有改变 ,存储过程却是执行完成了,但是考虑到set后面的语句前面是表名,后面是参数,应该不会存在问题的。其实这里还是一样有问题,只是这个条件等同于jsgl.sm=jsgl.sm,这样update执行成功了,但是值却没有被修改。

也就是说我们写的第一个存储过程是等于下面的一条语句

procedure sp_upd_update_jsgl(t_mc in varchar2,--名称

t_sm in varchar2--说明

)

is

begin

update jsgl set jsgl.sm=jsgl.sm where t_mc =t_mc ;

end ;

这样的语句是成功了,但是值修改的时候还是原来的值而且这个update等同于 update jsgl set jsgl.sm=jsgl.sm where 1=1是一样的 where 根本没有起作用

所以要切记切记,存储工程参数名一定不要和表名相同

mysql存储过程参数与属性同名问题_存储过程中参数与表名相同的二义性问题相关推荐

  1. mysql中如何根据表名找到库名

    mysql中如何根据表名找到库名: SELECT table_schema FROM information_schema.TABLES WHERE table_name = '表名'; 添加字段: ...

  2. mysql存储过程判断多个条件语句_存储过程里多条件判断(SQL组合查询)

    我存储过程里想实现多个传入参数的判断,里面有7个传入参数条件. CREATE PROCEDURE sp_tbWasteSource_Search ( @sd   datetime,           ...

  3. mysql项目酒店管理博客园_项目中常用的19条MySQL优化

    在写文章之前,首先感谢 飞友科技 陆老师提供的文档.. 声明一下:下面的优化方案都是基于 " Mysql-索引-BTree类型 " 的 一.EXPLAIN 做MySQL优化,我们要 ...

  4. mysql inserted表_触发器中的inserted表和deleted表

    触发器语句中使用了两种特殊的表:deleted 表和 inserted 表.Microsoft? SQL Server 2000 自动创建和管理这些表.可以使用这两个临时的驻留内存的表测试某些数据修改 ...

  5. mysql表的组成_数据库中的数据表由什么组成?

    在数据库中,数据表是由表名.表中的字段和表的记录三个部分组成的.在建立表之前都必须先设计它的结构,表结构描述了一个表的框架.设计表结构实际上就是定义组成一个表的字段个数,每个字段的名称.数据类型和长度 ...

  6. mysql 动态创建事件_mysql 通过事件定时为数据库创建动态表名

    #检测事件是否开启 show variables like 'event_scheduler'; #开启事件(最好在my.init设置,因为重启后还会变回默认值OFF) set global even ...

  7. mysql查询到最新记录就停止_使用Limit参数优化MySQL查询 在找到一个记录后将停止查询...

    优化 MySQL 查询的 Limit 参数 我们在做一些查询的时候总希望能避免数据库引擎做全表扫描,因为全表扫描时间长,而且其中大部分扫描对客户端而言是没有意义的.那么在 MySQL 中有那些方式是可 ...

  8. mysql 当前记录集不支持书签_存储过程 分页。当前记录集不支持书签。这可能是提供程序或选定的游标类型的限制。...

    ifsession("user")="A0331A2"then'试验存储过程response.Write("存储过程")DIMMyComm, ...

  9. java 初始化系统参数_系统中参数的初始化 参数在系统中配置

    1.我们来看这个需求,例如:我们上传图片.上传附件 需要放在服务器上的一个目录上,该目录在不同的操作系统下是不同的.因为我们在写java代码的时候就不能写死. 这个时候我们就要用到系统参数.在界面上自 ...

最新文章

  1. ClickHouse系列教程
  2. xmlrcp学习 - python中使用xmlrpc
  3. ionic react-native和native开发移动app到底那个好
  4. 两道统计题(两次检测呈阳性,连续抛硬币)
  5. 24、Cocos2dx 3.0游戏开发找小三之网格动作:高炫酷的3D动作
  6. Failed to connect to driver at XXXXXXx
  7. 深度相机 物体三维重建_基于深度相机进行室内完整场景三维重建的方法及系统_2017100513665_说明书_专利查询_专利网_钻瓜专利网...
  8. 天体运行动图,如此美妙,如此震撼!
  9. 北大出版社继续送书 | 附上周4位中奖的朋友信息
  10. Objective-C基础语法快速入门
  11. python 字符串分割_python拆分字符串到列表
  12. 手写实现bpnn神经网络
  13. [资源]C++书籍之 C++ Primer Plus (第6版)中文版
  14. 2021年低压电工复审考试及低压电工模拟考试
  15. 系统垃圾清理bat文件
  16. struts教程笔记5
  17. 学java,报班还是自学?
  18. 怎样把jpg格式转换成pdf
  19. windows远程命令执行
  20. 计算机考研代码854,哈工大计算机考研考纲854计算机基础

热门文章

  1. 论文浅尝 | 基于复杂查询图编码的知识库问答
  2. Android官方开发文档Training系列课程中文版:手势处理之多点触控处理
  3. 数学家、中科院院士张景中:数学实力影响国家实力是近代以来的共识
  4. SpringBoot:如何处理SprintBoot提示Whitelabel Error Page以及了解原因?
  5. formSelects-v4.js 基于Layui的多选解决方案
  6. 第九集 生死穿越风火山,感受尘世间轮回
  7. 用samba来创建windows下的文件共享
  8. (六)Spark-Eclipse开发环境WordCount-JavaPython版Spark
  9. 让引擎不再是你的唯一,对百度再见
  10. 关于线程池ThreadPoolExecutor使用总结