mysql 存储过程 rowcount_ORACLE中的SQL%ROWCOUNT与MySQL中的ROW_COUNT()的一点异同
ORACLE中的SQL%ROWCOUNT与MySQL中的ROW_COUNT()的一点异同
MySQL的ROW_COUNT()和ORACLE中的SQL%ROWCOUNT函数作用并不完全相同。
从作用上来说,两者都是返回前一个SQL进行UPDATE,DELETE,INSERT操作所影响的行数,但是在UPDATE上两者还是有一定区别的。
通过一个更新的例子来说明:
MySQL上的测试(数据库版本为:5.1.30):
1.创建数据库表:
create table t(
id int,
name varchar(50),
address varchar(100),
primary key(id,name)
)engine =InnoDB;
2.插入测试数据:
insert into t
(id,name,address)
values
(1,'yubowei','weifang'),
(2,'sam','qingdao');
3.update t
set address = 'weifang'
where id = 1
and name = 'yubowei';
此时查看影响的行数:
select row_count(); ==〉执行结果为0;
4.update t
set address = 'beijing'
where id = 1
and name = 'yubowei';
此时查看影响的行数:
select row_count(); ==〉执行结果为1;
从上面的测试可以得出在MySQL中只有真正对记录进行修改了的情况下,row_count才会去记录影响的行数,否则如果记录存在但是没有实际修改则不会将该次更新记录到row_count中。
ORACLE上的测试(数据库版本为:10G):
1.创建数据库表:
create table t(
id int,
name varchar2(50),
address varchar2(100),
primary key(id,name)
);
2.插入测试数据:
insert into t
(id,name,address)
values
(1,'yubowei','weifang'),
(2,'sam','qingdao');
3.update t
set address = 'weifang'
where id = 1
and name = 'yubowei';
此时查看影响的行数:
v_RowCount := SQL%ROWCOUNT; ==〉执行结果为1;
4.update t
set address = 'beijing'
where id = 1
and name = 'yubowei';
此时查看影响的行数:
v_RowCount := SQL%ROWCOUNT; ==〉执行结果为1;
从上面的测试可以得出在ORACLE,只要更新的记录存在,则不论实际由没有修改数据,影响的行数都会被累积记录下来。
对于习惯于通过使用SQL%ROWCOUNT来判断表中有没有记录,没有则插入一条记录的情况,在MySQL中进行存储过程开发时如果单纯的使用ROW_COUNT()函数可能会出现错误。
©著作权归作者所有:来自51CTO博客作者yubowei的原创作品,如需转载,请注明出处,否则将追究法律责任
mysql 存储过程 rowcount_ORACLE中的SQL%ROWCOUNT与MySQL中的ROW_COUNT()的一点异同相关推荐
- mysql sql rowcount_ORACLE中的SQL%ROWCOUNT与MySQL中的ROW_COUNT()的一点异同-阿里云开发者社区...
MySQL的ROW_COUNT()和ORACLE中的SQL%ROWCOUNT函数作用并不完全相同.从作用上来说,两者都是返回前一个SQL进行UPDATE,DELETE,INSERT操作所影响的行数,但 ...
- 写MySQL存储过程实现动态执行SQL
写MySQL存储过程实现动态执行SQL --存储过程名和参数,参数中in表示传入参数,out标示传出参数,inout表示传入传出参数create procedure p_procedurecode(i ...
- cockroachdb mysql_CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储...
CockroachDB学习笔记--[译]CockroachDB中的SQL:映射表中数据到键值存储 原文标题:SQL in CockroachDB: Mapping Table Data to Key- ...
- oracle存储过程rowcount用法,oracle中的sql%rowcount,sql%found、sql%notfound、sql%rowcount和sql%isopen...
sql%rowcount用于记录修改的条数,就如你在sqlplus下执行delete from之后提示已删除xx行一样,这个参数必须要在一个修改语句和commit之间放置,否则你就得不到正确的修改行数 ...
- oracle中的sql%rowcount,sql%found、sql%notfound、sql%rowcount和sql%isopen
Oracle 存储过程 删除表记录时删除不存在的记录也是显示删除成功 create or replace procedure delDept(p_deptno in dept.deptno%type) ...
- mysql存储过程是不是不能穿sql语句_mysql存储过程能不能直接执行拼接的sql语句...
展开全部 当然可以,就是在mysql存储过程中使用动态sql,就可以拼接sql,然62616964757a686964616fe58685e5aeb931333361323562后执行了. 给你复制一 ...
- ibatis mysql存储过程_分步详解 如何在iBatis中调用存储过程
通过iBatis我们可以在数据库表中执行内嵌的insert , delete, update SQL命令.本文中你将看到如何在iBatis中调用存储过程. 我们使用MySQL数据库,并且使用和上一个例 ...
- oracle中的sql%rowcount
sql%rowcount中的sql是oracle的内部游标,rowcount的意思是之前的dml sql语句影响的多少行数据. 如果是delete操作rowcount就是delete的数据,如果是in ...
- SQL中的sql%rowcount
sql%rowcount 的作用:记录修改的条数,当你进行删除,更新操作的时候,可以提示已删除\更新的行数,这个参数放在修改语句和commit之间 例如: SQL> declare v_coun ...
最新文章
- Egret学习笔记 (Egret打飞机-3.实现背景循环滚动)
- Http协议中的Content-Length属性
- 如何在PySide中使用qrc资源文件
- 同一进程中同一端口如何区分不同的Socket
- 怎么用记事本写java_如何用记事本写下第一个Java程序-Fun言
- C#网络版斗地主——出牌权限的传递
- Python时间戳与时间字符串互相转换实例代码
- 生物医学网络中的图嵌入:方法,应用和评估
- 天下手游一直显示连接服务器,《天下手游》4月11日合服公告
- 什么是:arguments
- scanf()函数的使用
- 惊!brat安装后进行标注-实战,并且通过一行代码自动标注为BIO格式,便于模型训练-and 错误解决
- Unity 0.Interactive Tutorials
- SSM前后端分离技术
- 比较好的免费英语口语学习网站
- MobileNet v1 和 v2
- FrameLayout实现霓虹灯效果
- Java 完美判断中文字符
- 人月神话的神话色彩 - Boehm的模型和数据分析
- 【.net core】Excel导入导出之Npoi.Mapper
热门文章
- 开拓新城 · 长沙 | 时速云签约马栏山视研院视频渲染超算云平台项目,携手推进我国视频产业跨越式创新发展
- wp8开发笔记之应用程序真机发布调试
- 走嵌入式方向,一定要软硬件都懂吗?
- BUUCTF-MD5强弱比较-MD5()的万能密码-tornado框架注入-中文电码
- 农村小学使用计算机新闻稿,科技圆梦 生活美好——2017年东边小学科技节活动报道...
- Scripting.FileSystemObject控件的用法
- 遇到问题时,如何跟客户沟通
- [ Jackson ] 简单使用
- 鲁大师10月新机流畅榜发布,中端机型反超旗舰?冠军是它
- 2022上海燕窝展|上海燕博会|滋补大会:新零售、新消费、新对接、新资源