Chinaunix首页 | 论坛 | 博客
  • 博客访问: 811382
  • 博文数量: 50
  • 博客积分: 757
  • 博客等级: 上士
  • 技术积分: 1913
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-29 14:29
个人简介

DBA

文章分类

全部博文(50)

文章存档

2015年(3)

2014年(2)

2013年(14)

2012年(19)

2011年(12)

分类: Mysql/postgreSQL

2011-08-03 11:26:59

整理于网络

在Mysql中ROW_COUNT()返回前一个SQL进行UPDATE,DELETE,INSERT操作所影响的行数。

下面通过一个更新的例子来说明:

 MySQL上的测试(数据库版本为:5.1.22):

1.创建数据库表:

 

Java代码  收藏代码
  1. create table t(  
  2. id int,  
  3. name varchar(50),  
  4. address varchar(100),  
  5. primary key(id,name)  
  6. )engine =InnoDB;  

 
2.插入测试数据:

Java代码  收藏代码
  1. insert into t  
  2. (id,name,address)   
  3. values  
  4. (1,'yubowei','weifang'),  
  5. (2,'sam','qingdao');  

3.更新:

Java代码  收藏代码
  1. update t set address = 'weifang'  
  2. where id = 1 and name = 'yubowei';  

   此时查看影响的行数:
   select row_count(); ==〉执行结果为0;
 4.再更新:

Java代码  收藏代码
  1. update t set address = 'beijing'  
  2. where id = 1 and name = 'yubowei';  

   此时查看影响的行数:
   select row_count(); ==〉执行结果为1;
   从上面的测试可以得出在MySQL中只有真正对记录进行修改了的情况下,row_count才会去记录影响的行数,否则如果记录存在但是没有实际修改则不会将该次更新记录到row_count中。

上帝也写过一个:注意的问题是


  1. 今天用PREPARE动态处理了UPDATE语句后,
  2. 发现ROW_COUNT()函数返回的老是-1 ,检查了下原来是把row_count()放到了
  3. deallocate 语句后面了。

阅读(2891) | 评论(0) | 转发(0) |
0

上一篇:关于innodb的count优化

下一篇:awk区间取值

给主人留下些什么吧!~~