递增数据插入表(二)

递增数据插入表,我们还可以使用生成随机数来填充,建表的时候使用约束,不能重复,重复的话自然就不插入,继续生成下一个不重复的随机数。

还是以之前的为例,插入表中的数据为100-999。我们不谈性能(插入数据量小速度也很快的),只谈逻辑。

create table TestNum(num numeric(3,0) unique,check (num between 100 and 999));
go
declare @num int
set @num=(select COUNT(*) from TestNum)
while (@num < 900)
begin
insert into TestNum
select round(RAND(CHECKSUM(newid()))*1000,0)
set @num = (select count(*) from TestNum)
end;
go
select COUNT(*) from TestNum;
go
select * from TestNum order by 1;
go

上面的插入可能只是某个需求中最基础的实现,比如下面的111000到111999,前面111不变,后面的改变。实际应用可以生成特定号码段的号码

create table TestNum(num numeric(6,0) unique,check (num between 111000 and 111999));
go
declare @num int
set @num=(select COUNT(*) from TestNum)
while (@num < 1000)
begin
insert into TestNum
select cast(‘111‘+right(‘000‘+convert(nvarchar(6),round(RAND(CHECKSUM(newid()))*1000,0)),3) as numeric(6,0))
set @num = (select count(*) from TestNum)
end;
go

时间: 2024-10-10 09:34:44

递增数据插入表(二)的相关文章

触发器-当表1插入数据时将表1的数据插入表2

--触发器学习 ALTER trigger 触发器名 on 表1 for insert as begin if (select count(1) from 表1)=0 print '未插入数据' else insert into 表2(字段 )select 对应字段 from inserted end --存储过程学习 (1)分页 ALTER procedure 存储过程名( @pageIndex int, @pageSize int ) as declare @startRow int, @e

文本文件导入mysql数据库表及insert命令插入数据到表

1.文本文件导入数据库表 格式:mysql> LOAD DATA LOCAL INFILE '文本路径' INTO TABLE 表名; 例:mysql> LOAD DATA LOCAL INFILE 'D:/pet.txt' INTO TABLE pet; <pre name="code" class="plain">可以创建一个文本文件"pet.txt",每行包含一个记录,用定位符(tab)把值分开,并且以CREATE

innodb_flush_log_at_trx_commit 数据插入速度优化

innodb_buffer_pool_size如 果用Innodb,那么这是一个重要变量.相对于MyISAM来说,Innodb对于buffer size更敏感.MySIAM可能对于大数据量使用默认的key_buffer_size也还好,但Innodb在大数据量时用默认值就感觉在爬了. Innodb的缓冲池会缓存数据和索引,所以不需要给系统的缓存留空间,如果只用Innodb,可以把这个值设为内存的70%-80%.和 key_buffer相同,如果数据量比较小也不怎么增加,那么不要把这个值设太高也可

oracle中复制表和数据 &amp;&amp; 多表插入语句

创建测试表和测试数据 create table test  (id number,name varchar(10));  insert into  test values(1,'liufang');  insert into  test values(2,'xiaozhang');  insert into  test values(3,'dawei');  insert into  test values(4,'laotan');  insert into  test values(5,'la

sqlite expert导入excel表格 (包括使用问题、以及把 一个表的数据插入到另一个表中)

一.sqlite导入excel 1.打开要导入的excel --- 另存为(2007版点击左上角OFFICE图标即可找到) --- 保存类型:CSV类型 (提示什么不兼容什么的,一律点确定.) 2.打开sqlite expert ,选择建好的数据库文件(或者是导入的已存在的db文件,或者是自己新建一个.db数据库文件). 右击文件名---选择最后一个import text file(CSV,TSV) 3.(如果没有建过和这个excel名相同的表)右边Destination选择第一项new tab

SQL_如何实现用户A的表A数据插入到用户B的表B中?

***********************************************声明***********************************************************************  原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/39901995 *******

oracle将查询到的数据插入到数据库的表中

一.Oracle数据库中,把一张表的查询结果直接生成并导入一张新表中.   例如:现有只有A表,查询A表,并且把结果导入B表中.使用如下SQL语句:   create table b as select * from a   二.Oracle数据库中支持把查询结果导入到另外一张表中.   例如:有两个表A和B   1)如果两个表的表结构是否相同,但要插入的字段类型相同:   (1)把A表的全部字段数据插入到B表中: insert into B select * from A;   (2)把A表中

SQLserver将一张表a的数据插入另一张表b

一.将一张表a的数据插入另一张表b(b为新建表) select * into 表b  from 表a 二.将一张表a的数据插入另一张表b(b为已有表) insert into 表b select * from 表a

Android开发时,sqlite创建表成功,insert不报错,但没有数据插入的原因

在android开发过程中,经常要通过sqlite来存储一些数据,这种应用应该是再平常不过了,但是有时难免一时疏忽,就会出现sqlite创建表成功,insert不报错,但没有数据插入. 具体问题详见如下代码: Context ctx;        SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); // 开启事务        db.beginTransaction();        try{                // 数