100分求教怎么造数据。。。

plumebobo 2012-10-09 12:14:33
工作快1个月了。。。学了好多工具。。。焦头烂额。。。

现在开发第一阶段正式结束了,打包开始测试了,于是几条数据不能满足需求,要求造个几十条数据,

看看性能和最起码的翻页,分页之类的。。。

问题苦逼的我。。。刚刚稍微熟练使用pl/sql,不会造数据呀!!!

求步骤。。。

比如我一个sql用到两张表,比如a ,b
是不是,a,b中出现的字段基本都要从维表获取值?然后查找出这些值,用union all拼接出一些数据,然后插入到a,b?

求一个简单批量造数据的sql啊!!!(附点解释)
...全文
498 点赞 收藏 19
写回复
19 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
meichen8050753 2012-10-11
自己写个工具不得了。。模拟数据插入的操作。。
回复
abc0824 2012-10-11
写一个sql语句,然后复制再运行
回复
strive_bo 2012-10-11
你要懂得互相插入最高效的是:

insert into tablename select a,b,c from table_name
回复
plumebobo 2012-10-11
[Quote=引用 18 楼 的回复:]

自己写个工具不得了。。模拟数据插入的操作。。
[/Quote]
求实现。。。刚工作1个月的菜鸟表示完全不会。。。
回复
plumebobo 2012-10-10
[Quote=引用 10 楼 的回复:]

#6楼说的基本就概括了

1、你要是sql不熟练,那就用你熟练的java+jdbc,写个测试类用循环把数据插入表,如果你sql熟练的话用sql就好了,oracle的sql编程
2、用excel之类的,这个造数据应该方便一点吧,之后导入进去
[/Quote]
你说的excel。。。。比如emp表,在pl/sql中,
select * from emp for update
打开那个小锁,可以直接插入数据的。。。
回复
plumebobo 2012-10-10
[Quote=引用 5 楼 的回复:]

在myeclipse中创建一个文件名为user.sql文件,在其中添加数据insert into a as select * from a;
可以实现批量添加的哦。
[/Quote]
有主键会违反唯一性约束的- -
回复
plumebobo 2012-10-10
[Quote=引用 6 楼 的回复:]

需求写的不太清晰,如果所需要造的数据偏复杂的话,直接用Java+JDBC来处理。

SQL的话,一般是用大表进行笛卡尔链接,形成大循环批量做Insert,比如:

INSERT INTO 目标表(字段1, 字段2)
SELECT random() as 字段1, random() as 字段2
FROM 随便啥表1, 随便啥表2, 随便啥表3, 随便啥表4

那么总插入的行集是后……
[/Quote]
差不多就是要的这种,谢谢了!!!我再测试一下。。。主要就是,数据不能乱造,要从维表中获取地域啊,名称,月份之类的。。。
回复
MiceRice 2012-10-10
[Quote=引用 11 楼 的回复:]
要从维表中获取地域啊,名称,月份之类的。。。
[/Quote]

原理是一样的:

INSERT INTO 目标表(地区ID, 字段1, 字段2)
SELECT 地区维表.ID, random() as 字段1, random() as 字段2
FROM 地区维表, 随便啥表1, 随便啥表2, 随便啥表3, 随便啥表4
回复
plumebobo 2012-10-10
[Quote=引用 14 楼 的回复:]

引用 11 楼 的回复:
要从维表中获取地域啊,名称,月份之类的。。。


原理是一样的:

INSERT INTO 目标表(地区ID, 字段1, 字段2)
SELECT 地区维表.ID, random() as 字段1, random() as 字段2
FROM 地区维表, 随便啥表1, 随便啥表2, 随便啥表3, 随便啥表4
[/Quote]

受教了!!!今天测试用妥妥的~
回复
liangchengfck1 2012-10-09
直接往表里写不就好了 除非是一个表中数据转移到另一个表中 字段数据类型要一样
回复
dubbo-go 2012-10-09
建议写for循环插入 - -
回复
lukyaa 2012-10-09
学习了
我用pl/sql没那么多数据
先把基本的造好,然后就单元测试
成批的数据都是跟客户那边要的
回复
MiceRice 2012-10-09
需求写的不太清晰,如果所需要造的数据偏复杂的话,直接用Java+JDBC来处理。

SQL的话,一般是用大表进行笛卡尔链接,形成大循环批量做Insert,比如:

INSERT INTO 目标表(字段1, 字段2)
SELECT random() as 字段1, random() as 字段2
FROM 随便啥表1, 随便啥表2, 随便啥表3, 随便啥表4

那么总插入的行集是后面这四个表行数的乘积,注意别太大了,数据库会挂掉的。


当然也可以把数字转为字符串,或者从某个源表中Select字段出来填充。
回复
yinfu888 2012-10-09
在myeclipse中创建一个文件名为user.sql文件,在其中添加数据insert into a as select * from a;
可以实现批量添加的哦。
回复
SagarYu 2012-10-09
你应该用过PL SQL 工具吧,连接后在主界面->Tools->Export Tables ->SQL Inserts ->Export 就行了。
回复
a,b表单独插入
回复
最好弄个单元测试,这样增删改查很方便的。
回复
leandzgc 2012-10-09
如果你的表里没有主键约束的话我给你个语句;

insert into a as select * from a;//这句话是每次插入a表中现有的数据到a表,也就是全部都是重复数据,但是数量增加了。PS:如果报错就去掉as关键字,我记得是需要加的。
insert into b as select * from b;//同理,每次执行复制b表中当前的数据到b表。
回复
lzh_me 2012-10-09
#6楼说的基本就概括了

1、你要是sql不熟练,那就用你熟练的java+jdbc,写个测试类用循环把数据插入表,如果你sql熟练的话用sql就好了,oracle的sql编程
2、用excel之类的,这个造数据应该方便一点吧,之后导入进去
回复
相关推荐
发帖
Java EE
创建于2007-09-28

6.6w+

社区成员

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
申请成为版主
帖子事件
创建了帖子
2012-10-09 12:14
社区公告
暂无公告