sql 循环插入某一条数据】的更多相关文章

declare @i int set @i=1 while @i<(10000)begin INSERT INTO [Table]( [IDi] ,[IDo] ,[Synci] ) ( SELECT top 1 [IDi] ,@i ,[Synci] FROM [Table] ) set @i=@i+1 end…
declare maxnumber constant number:=10000; i number :=1; begin for i in 1..maxnumber loop insert into DEPT(DEPTID,DEPTNAME,FATHERID) values(i,CONCAT('test',i),i-1); --CONCAT('test',i)是将test与i进行拼接 end loop; dbms_output.put_line(' 成功录入数据! '); commit; en…
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ADODB, StdCtrls; type TForm1 = class(TForm) Button1: TButton; btn1: TButton; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; ADOC…
我用到的数据库为,mysql数据库5.7版本的 1.首先自己准备好数据库表 其实我在插入1000万条数据的时候遇到了一些问题,现在先来解决他们,一开始我插入100万条数据时候报错,控制台的信息如下: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (4232009 > 4194304). You can change this value on the server by setting the max_al…
需求是这样的,需要查询某几个表的数据,然后插入到另外一个表. 一看到需求,很多人都会用hibernate去把这些数据都查询出来,然后放到list中, 然后再用for循环之类的进行遍历,一条一条的取出数据对对象进行赋值,然后在调用dao层的save 方法进行保存对象. hibernate保存一条数据是在35毫秒左右,咱们来计算下时间: 35*110000=3850000 毫秒 3850000/1000=3850秒 3850/60=64.1666666分钟, 如果咱们使用hibernate的话,那么…
转自:https://www.cnblogs.com/fanwencong/p/5765136.html 我用到的数据库为,mysql数据库5.7版本的 1.首先自己准备好数据库表 其实我在插入1000万条数据的时候遇到了一些问题,现在先来解决他们,一开始我插入100万条数据时候报错,控制台的信息如下: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (4232009 > 4194304). You can…
如何知道刚刚插入数据库那条数据的id 一.总结 一句话总结:这些常见功能各个框架里面都有,可以查看手册,thinkphp里面是$userId = Db::name('user')->getLastInsID(); 1.在mysql和mysqli中如何选择? 用mysqli,php官方推荐 2.mysqli中如何查找到刚刚出入数据库的那条数据的id? mysqli对象的indert_id属性 $mysqli->insert_id 二.PHP如何找到刚刚插入数据库的一条数据的ID? $_title…
本例代码下载:https://files.cnblogs.com/files/xiandedanteng/InsertMillionComparison20191012.rar 我的数据库环境是mysql Ver 14.14 Distrib 5.6.45, for Linux (x86_64) using EditLine wrapper 这个数据库是安装在T440p的虚拟机上的,操作系统为CentOs6.5. 插入一千万条数据,一次执行时间是4m57s,一次是5m. 数据表的定义是这样的: C…
教你如何6秒钟往MySQL插入100万条数据!然后删库跑路! 由于我用的mysql 8版本,所以增加了Timezone,然后就可以了 前提是要自己建好库和表. 数据库test, 表user, 三个字段: u_id.u_name.u_pwd,然后主键自增 conn = DriverManager.getConnection("jdbc:mysql:///test?" + "&rewriteBatchedStatements=true&serverTimezone…
摘要: 下文讲述使用sql脚本实现相邻两条数据相减的方法,如下所示: 实验环境:sql server 2008 R2 实现思路: 1.使用cte表达式,对当前表进行重新编号 2.使用左连接对 表达式 生成的临时表进行错位连接,并对生成的新纪录中两列进行相减 ),qty int); go ----生成基础数据 insert into [maomao365](sort, qty)values (),(), (),(), (),() go with cte_temp as ( select row_n…
一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 MySQL 数据库,又插入了一条数据,此时 id 是几? 一般情况下,我们创建的表的类型是InnoDB,如果新增一条记录(不重启mysql的情况下),这条记录的id是8:但是如果重启(文中提到的)MySQL的话,这条记录的ID是6.因为InnoDB表只把自增主键的最大ID记录到内存中,所以重启数据库或者对表OPTIMIZE操作,都会使最大ID丢失. 但是,如果我们使用表的类型是MylSAM,那么这条记录的ID就是8.因为MylSAM…
--得出以上速度的方法是:在各个select语句前加: declare @d datetime set @d=getdate() select * from tb --并在select语句后加: select [语句执行花费时间(毫秒)]=datediff(ms,@d,getdate()) CREATE TABLE [dbo].[TGongwen] ( --TGongwen是红头文件表名 [Gid] [, ) NOT NULL , --本表的id号,也是主键 [title] [varchar]…
1.当我们测试的时候需要大量的数据的时候,往往需要我们自己造数据,一条一条的加是不现实的,这时候就需要使用脚本来批量生成数据了. import pymysql import random import string # 建立数据库连接 mysql = pymysql.connect(host="数据库IP", user="数据库用户名",port=3306,password="数据库密码", charset='utf8', autocommit=…
))default charset =utf8; #定义一个随机切割字符串的函数 delimiter // create function randStr() ) begin ) default 'ASDFGHJKLZXCVBNMQWERTYUIOP'; ))); end // delimiter ; #查看自定义函数的返回值 select randStr(); #定义一个随机字符串的函数,int varchar int+varchar类型# randStr(3,1) --> 返回 3 个 长度…
第一种方法一条一条执行插入,结果会很慢 <?php header("Content-Type:text/html;charset=utf-8"); date_default_timezone_set("PRC"); $servername = "localhost"; $port = 3306; $username = "root"; $password = "root"; $dbname = &qu…
sql 查询某个条件下多条数据中最新的一条数据或最老的一条数据 test_user表结构如下: 需求:查询李四.王五.李二创建的最初时间或者最新时间 1:查询最初的创建时间: SELECT * FROM( SELECT * FROM test_user ) AS tu WHERE NOT EXISTS ( SELECT * FROM( SELECT * FROM test_user ) AS tu2 WHERE tu2.user_name=tu.user_name AND DATE(tu.tim…
有时候做实验测试数据用到大量数据时可以用以下方法插入: 方法一:使用xmltable create table bqh8 as select rownum as id from xmltable('1 to 10000000');select count(*) from bqh8; -----------------------一千万条数据已插入. 方法二:使用dual+connect by level create table bqh9 as select rownum as id from…
开发中遇到的问题:在新增一条数据后往往不需要返回该数据的ID,但是有的时候可能需要返回该数据的ID以便后面的编程使用. 在这里介绍两种方法: 其一:使用存储过程: create procedure addDatas ( @Id int OUTPUT, @a varchar(200), @b varchar(500) ) AS insert into T_news(a, b) values(@a,@b) SET @Id = @@IDENTITY RETURN 使用存储过程返回了新增数据的ID: 第…
最近在做接口测试的时候,测试数据是从数据库查询的,但是当需要并发多次去调用接口时,如果sql只是单纯的进行了limit取值,那并发的时候肯定会每条数据都一样. 因此,研究了下sql随机取一条数据的写法,从而用大量不同数据去进行并发的接口性能测试 原文:https://www.cnblogs.com/my_life/articles/7827233.html 三种方法: (1)ORDER BY RAND() 写法:SELECT * FROM 表A ORDER BY RAND() LIMIT 1 缺…
第一种方法:效率最高 SELECT TOP 页大小 * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1 ) as A ) --注解:首先利用Row_number()为table1表的每一行添加一个行号,给行号这一列取名'RowNumber' 在over()方法中将'RowNumber'做了升序排列 --然后将'RowNumber'列 与table1表的所有列 形成一个表A --重点在where条件.…
declare @i intdeclare @qid int set @i=1set @qid=100 while @i<50000begininsert into Order(orderid,ordername) values(@qid,'订单名称')set @i=@i+1set @qid=@qid+1end 海量语句查询代码优化: 具体要注意的:1.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t w…
SQL> create table tt_test ( x int, y char(50) ); Table created. SQL> SQL> begin 2 for i in 1 .. 100000 3 loop 4 insert into t values ( i, 'x' ); 5 end loop; 6 commit; 7 end; 8 / PL/SQL procedure successfully completed. SQL> SQL> select coun…
package query; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Random; import java.util.jar.Attributes.Name; public class query { public s…
上周值班,碰到这样的一个客户问题,表结构简化如下: CREATE TABLE `aa` (`c1` int(10) unsigned NOT NULL AUTO_INCREMENT,`c2` int(11) DEFAULT NULL,`c3` int(11) DEFAULT '0',`c4` int(11) DEFAULT NULL,PRIMARY KEY (`c1`)) ENGINE=InnoDB DEFAULT CHARSET=utf8   在使用如下的语法时,怎么会插入两条 c2 = 10…
写一个存储过程,里面写一个循环,就可以了.主键你现在不是自增的,所以写语句的时候,就Insert到3个字段中. DELIMITER $$ DROP PROCEDURE IF EXISTS `proc_auto_insertdata`$$ CREATE PROCEDURE `proc_auto_insertdata`() BEGIN DECLARE init_data INTEGER DEFAULT 1; WHILE init_data <= 10000 DO INSERT INTO t_1 VA…
问题来源: Steed 2018/1/5 11:30:25 @流年 我用fetchsql查看的sql,发现数据都是最后一条 Steed 2018/1/5 11:30:39 我也不知道是什么问题,我打印数组时没问题的 Steed 2018/1/5 11:31:44 我试试新建个项目测试下 11:49:45 Steed 2018/1/5 11:49:45 @流年 我composer新建了个项目,没有问题 Steed 2018/1/5 11:50:00 可能是我目前的这个项目核心代码有问题 TODO:…
在做项目的工程中,需要数据库中存在大量的数据进行程序的验证,但是我们又没有数据,这时就需要我们自己手动建一个表,插入大量数据,进行验证. 那么插入大量数据的sql语句如下: insert into EXT_LOG (ID) select rownum as id from dual connect ; 其实无非就是使用了rownum 这个Oracle中的字段…
本例代码下载:https://files.cnblogs.com/files/xiandedanteng/InsertMillionComparison20191012.rar 这次实验的环境仍然和上次的一样,只是插入时间cdate改为一条增加一秒,代码如下: package com.hy.action; import java.io.Reader; import java.text.SimpleDateFormat; import java.util.ArrayList; import jav…
1.使用dual配合connect by level create table BigTable as select rownum as id from dual connect by level <= 100000; 但是有connect by level有上限,如果超出上限,系统会报,"connect by level"内存不足,我试过1000000万数据可以,但是再多就不行了. 2. 使用xmltable,"CONNECT BY 操作内存不足,10g开始支持XML…
(from 新表 in db.books where 新表.bookid < 400 select 新表).Take(11); storeDB.Albums.OrderByDescending(a => a.OrderDetails.Count()).Take(count).ToList();数据上下文.Albums数据表.倒序排序(条件为按照各数据关联的OrderDetails数据表中数据的条数).拿记录(count条).立即执行转为list…