1.获取上条插入数据 LAST_INSERT_ID(); 2.获取update影响行数. ROW_COUNT(); mysql> UPDATE t -> SET address = 'beijing111' -> WHERE id = 1 -> AND NAME = 'yubowei'; Query OK, 1 row affected (0.30 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> mysql> SEL…
sql server中,返回影响行数是:If @@RowCount<1 Oracle中,返回影响行数是:If sql%rowcount<1 例: sqlserver: create procedure Proc_test , )='', AS BEGIN Update T_Mt Set Stat=@Stat,OStat=@Stat,RptTime=Getdate() Where MsgId=@MsgId --没有更新成功就插入到t_Statbuf insert into t_statbuf(M…
oracle中.返回影响行数是:If sql%rowcount 举例: update ut_calenderStatus t set t.calenderstatus=pi_flg, t.m=pi_M, t.n=pi_N, t.prolong=pi_prolong where t.fundcode=pi_fundcode; if sql%rowcount=0 then insert into ut_calenderStatus values (pi_fundcode,pi_flg,pi_M,pi…
mybatis连接mysql数据库,发现同一个update执行多次,返回的int值都是1. 我记得同样的update再次执行时 受影响行数是0. 后来发现,我之前一直用的SQLyog是这样子的. 原来,不同的连接客户端执行update给出的受影响行数不同. 对于再次返回0,网上的资料是,MySQL 为了提升性能,当它发现要执行的修改内容与数据库中完全一致时,对它而言,此时修改是毫无意义的,反而会消耗一次执行修改的性能,于是它就不再做修改,因而受影响行数就是0. 至于mybatis,网上有说myb…
关于SQL Server 2014中的基数估计,官方文档Optimizing Your Query Plans with the SQL Server 2014 Cardinality Estimator里有大量细节介绍,但是全部是英文,估计也没有几个人仔细阅读.那么SQL Server 2014中基数估计的预估行数到底是怎么计算的呢? 有哪一些规律呢?我们下面通过一些例子来初略了解一下,下面测试案例仅供参考,如有不足或肤浅的地方,敬请指教! 下面实验测试的环境主要为SQL Server 201…
本质:读操作,用mysql_num_rows函数,写操作用mysql_affected_rows函数 mysql_num_rows() 返回结果集中行的数目.此命令仅对 SELECT 语句有效.要取得被 INSERT,UPDATE 或者 DELETE 查询所影响到的行的数目,用 mysql_affected_rows(). CI中的方法: 读操作,获取行数: $query->num_rows() 该函数将会返回当前请求的行数.在本例子中, $query 表示当前 SQL 所产生的请求结果对象:…
<?php $mysqli=@new mysqli("localhost", "root", "123456", "xsphpdb"); if(mysqli_connect_errno()){ echo "连接数据库失败:".mysqli_connect_error(); $mysqli=null; exit; } //select语句(结果集), 非select语句,会影响行数 $sql="…
读取所有字段,自然排序 declare @fields varchar(max) Select @fields=ISNULL(@fields,'')++name+',' from syscolumns Where ID=OBJECT_ID('contact') order by colorder print @fields 读取所有字段,名称排序 declare @fields varchar(max) Select @fields=ISNULL(@fields,'')++name+',' fr…
rowcount的用法: rowcount的作用就是用来限定后面的sql在返回指定的行数之后便停止处理,比如下面的示例, set rowcount 10select * from 表A 这样的查询只会返回表A中的前10条数据.它和 "select top 10 * from 表A" 的作用一样.注意一点,set rowcount 的设置会在整个会话中有效.比如下面的sql示例: set rowcount 10select * from 表Agoselect * from 表B 表A和表…
项目中用到了批量更新. 在开发当中,可能经常会遇到批量处理这种情况,一般都再在java层面进行, 其本质是节省数据库连接打开关闭的的次数,占用更少的运行内存. 下面先记一下批处理映射吧: mybatis批量插入 <insert id="saveFeeRuleList" useGeneratedKeys="true" parameterType="java.util.List"> <selectKey resultType=&qu…
SqlCommand.ExecuteNonQuery 方法对连接执行 Transact-SQL 语句并返回受影响的行数. 对于 UPDATE.INSERT 和 DELETE 语句,返回值为该命令所影响的行数.对于所有其他类型的语句,返回值为 -1.如果发生回滚,返回值也为 -1 所以在查询表中是否有(某条)数据的时候,一定不能用select sql语句+ cmd.ExecuteNonQuery(),通过判断返回值是否大于0来判断. 解决方案:1. SqlCeCommand.ExecuteScal…
大家都遇到过项目中需要获控件的的高度或者列如文章开头说TextView的行数 但是很多人在实际操作中getLineCount()获取到值是零,其实只是我们没在正确的位置获取. 这是因为activtiy的onCreate()时候view 还没渲染完成,和view的生命周期有关 在onCreate()设置contentview其实是用Pull解析XML绘出到activity上的 很多开发很久的人绝对对view 不陌生, 这里就不对view做详细说明 ,因为这说起来十几篇都说不完, 只要知道在onCr…
found_rows() : select row_count() : update delete insert 注:需要配合相应的操作一起使用,否则返回的值只是1和-1(都是不正确的值) 示例: drop database if exists `mytest`; create database `mytest`; use `mytest`; drop table if exists `MyTestTable`; create table `MyTestTable`(`ID` int ,`Nam…
一.查看表名和对应的数据行数select  a.name as '表名',b.rows as '表数据行数'from sysobjects a inner join sysindexes bon a.id = b.idwhere   a.type = 'u'and b.indid in (0,1)--and a.name not like 't%'order by b.rows desc 二.查看表名和表占用空间信息--判断临时表是否存在,存在则删除重建if exists(select 1 fr…
我将ignite项目打包放到linux下,在linux下获取window中存放在oracle数据库中的数据,linux服务器作为ignite的服务端节点,我在本地启动tomact,作为ignite客户端获取linux中缓存的数据.在未使用ignite的情况下,即在本地使用jdbc直接连接oracle数据库.获取出来的数据行数为94217使用了ignite,启动一个服务端节点(linux中)和一个客户端节点(window中),获取出来的数据行数为94107使用了ignite,启动两个服务端节点(l…
原文地址:http://www.im286.com/thread-7091552-1-1.html 转来备份 研究一些随机的因素,主要是讲究效率问题. 语句一: MYSQL手册里面针对RAND()的提示大概意思就是,在 ORDER BY从句里面不能使用RAND()函数,因为这样会导致数据列被多次扫描,导致效率相当相当的低,效率不行,切忌使用. ---------分隔线------------------------------------ 语句二: SELECT * FROM users AS…
若要在i ≤r≤ j 这个范围得到一个随机整数r ,需要用到表达式 FLOOR( RAND() * (j – i)+i),RLOOR()取整树部分,RAND()生成0~1的随机数.ROUND(x,n)四舍五入取整,ROUND(x,n)表示四舍五入返回数字x的n位小数的数字,n可以是负数,这时是指定小数点左边的n位整数位为0,同时小数位均为0:. 例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机整数, 可使用以下语句: SELECT  FLOOR(RAND()*(12-7)+7)…
insert into result (user_id, activity_id, number) select user_id, activity_id from `activity_record`  order by rand() LIMIT 20; select * into 表A form 表B where条件;…
insert into test_tb output inserted.id,inserted.data values('c'),('d') delete from test_tb output deleted.id where data='c' update test_tb set data='abc' output inserted.id as ID ,deleted.data as old_data ,inserted.data as new_data where data='c' wit…
SELECT OBJECT_NAME(ii.id) TableName ,rows FROM sysindexes ii INNER JOIN sysobjects oo ON ( oo.id = ii.id AND oo.xtype = 'U ') WHERE ii.indid < 2 ORDER BY rows desc ;…
import "runtime" _, file, line, ok = runtime.Caller(calldepth) 其中calldepth 指的调用的深度,为0时,打印当前调用文件及行数. 为1时,打印上级调用的文件及行数,依次类推.…
select a.name,b.rows from sysobjects a,sysindexes b where a.name = b.name order by b.rows desc…
http://blog.csdn.net/dyllove98/article/details/8866357 http://www.iteye.com/problems/86864 insert标签中加上 useGeneratedKeys="true" keyProperty="id"    会将id组装到返回对象中而不是作为返回值 官方文档只这么说的:useGeneratedKeys该属性会告诉Mybatis使用JDBC的getGeneratedKeys方法来取出…
创建一个存储过程 DELIMITER $$ -- 设置定界符为$$,与';'意思相同,防止相同符号产生冲突 USE `yunkc_base1`$$ -- 使用数据库 DROP PROCEDURE IF EXISTS `insert_test`$$ -- 如果存在insert_test存储过程名字,则删除 CREATE DEFINER=`ykcbase`@`%` PROCEDURE `insert_test`() -- 设置存储过程的权限 BEGIN -- 开始 DECLARE i INT; --…
努力和选择,哪个更重要?关注微信公众号[天开易想]这是一位懂互联网研发和架构的户外.篮球老铁 前言 各位好,我是易哥(thinkYi). 大家有用过MyBatis-Plus(简称MP)的都知道它是一个MyBatis的增强工具,旨在MyBatis的基础上只做增强不做改变,为简化开发.提高效率而生. 特点 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 强大的 CRUD 操作:内置通用 Mapper.通用…
下载Navicat Premium最新版本 Navicat Premium是一个可连接多种数据库的管理工具,它可以让你以单一程序同时连接到MySQL.Oracle及PostgreSQL数据库,让管理不同类型的数据库更加的方便. 在MySQL中有几种获取行数的方法.一些数据库管理产品提供数据库统计信息,如表大小,但也可以使用直接的SQL来完成.在这篇文章中,我们将使用本机COUNT()函数来检索MySQL数据库中一个表或视图中的行数.在第2部分中,我们将学习如何从多个表甚至从数据库中的所有表中获取…
如题,程序中insert一条记录,调试过程中根据执行结果发现此条sql已经执行成功(影响行数为1且插入记录已生成自增主键正确值),但是查询数据库相应表时发现表中并无相应记录,通过直接在表中插入测试数据也能发现已有记录的主键值自增后的值已被占用(例如:id为主键,当前id为52,下一条记录插入进来时id值应当为53,那么直接操作表插入测试数据时实际id值为54,id为53虽然不存在但是已被占用). 造成这种情况的原因可能有以下几种: 1.程序中的insert语句存在于一条事物中,调试时该sql虽然…
当执行update语句时,如果受影响的行数是0,返回的也是true. $conn = new mysqli(); $sql = "update ..."; $query = $conn->query($sql); var_dump($query); //此时,如果update   sql语句执行成功,但是影响行数为0,$query是true. 影响行数: $conn->affected_rows; // 如果执行sql语句出错,返回-1, =================…
简要说下三者的区别:insert into 最普遍的插入,如果表中存在主键相同的数据,执行会报错. replace into 如果表中存在主键相同的数据则根据主键修改当前主键的数据,反之则插入(存在就修改,反之插入) insert ignore  如果表中存在主键相同的数据不在插入该条数据,反之则插入(存在则忽略,反之插入) 测试: 1.新增一张测试表 并预置数据 CREATE TABLE `insert_text` ( `id` ) NOT NULL, `value` ) DEFAULT NU…
DECLARE CountTableRecords CURSOR READ_ONLY FOR SELECT sst.name, Schema_name(sst.schema_id) FROM sys.tables sst WHERE sst.TYPE = 'U' ), ) OPEN CountTableRecords FETCH NEXT FROM CountTableRecords INTO @name, @schema ) BEGIN ) BEGIN PRINT @name ) SET @s…