PostgreSQL表的测试数据
如何使用一个SQL查询将测试数据创建到PostgreSQL表中?例如,我想在此表中插入几行数据:PostgreSQL表的测试数据,sql,postgresql,postgresql-9.3,Sql,Postgresql,Postgresql 9.3,如何使用一个SQL查询将测试数据创建到PostgreSQL表中?例如,我想在此表中插入几行数据: CREATE TABLE RELEASE_PLANNING( ID INTEGER NOT NULL, NAME TEXT, PLANNING_START_DATE DATE, PLANNING_END_DATE DATE, DESCRIPTION TEXT, LAST_UPDATE DATE, CREATED DATE ) ; 我测试了这个代码 PreparedStatement
CREATE TABLE RELEASE_PLANNING(
ID INTEGER NOT NULL,
NAME TEXT,
PLANNING_START_DATE DATE,
PLANNING_END_DATE DATE,
DESCRIPTION TEXT,
LAST_UPDATE DATE,
CREATED DATE
)
;
我测试了这个代码
PreparedStatement ps = null;
boolean committed = false;
try
{
conn.setAutoCommit(false);
for (int i = 0; i < 20; i++)
{
int randomNum = 10 + (int) (Math.random() * 20000);
ps = conn.prepareStatement("INSERT INTO KNOWLEDGEBASE (ID, NAME) VALUES (?, generate_series(1,1000), md5(random()::text))");
ps.setInt(1, randomNum);
// ps.setString(2, "Test_file");
ps.executeUpdate();
}
ps.close();
conn.commit();
committed = true;
}
PreparedStatement ps=null;
布尔值=false;
尝试
{
连接设置自动提交(错误);
对于(int i=0;i<20;i++)
{
int randomNum=10+(int)(Math.random()*20000);
ps=conn.prepareStatement(“插入知识库(ID,名称)值(?,生成_系列(11000),md5(随机():文本));
ps.setInt(1,随机数);
//ps.setString(2,“测试文件”);
ps.executeUpdate();
}
ps.close();
conn.commit();
承诺=真实;
}
我犯了一个错误
org.postgresql.util.PSQLException:错误:INSERT的表达式多于目标列
位置:7错误消息正确地告诉您,您正在尝试将三列数据(
?、generate_series(11000)、md5(random():text))
插入到两列(插入知识库(ID、名称)
)。不清楚这与您的createtable
语句有什么关系,该语句创建了一个具有七列的不同名称的表
这种查询将插入100行
insert into release_planning
select n, 'a', current_date, current_date, 'a', current_date, current_date
from generate_series (1, 100) n;
如果需要随机数据,最好的方法可能是编写一些函数,并在该语句的select
子句中使用它们。所以,我可能会写
- 随机_整数(低、高)
- 随机_日期(低、高),以及
- 随机_字符串(长度)
insert into release_planning
select n,
random_string(35),
current_date,
random_date(current_date, date '2016-12-31'),
random_string(20),
random_date(date (current_date + interval '3 days'), date '2016-12-31'),
current_date
from generate_series (1, 100) n;
最困难的方法是,编写几个insert语句——使用测试时有意义的数据。好的,但我想插入1000行随机数据。有什么快速的解决方法吗?我的标准技巧是手动插入10行,然后插入到表中,使用调整后的值从表中选择。这样做几次,你就会有1000行或更多行。我更新了帖子。如何生成随机字符串?那么,测试添加的代码时发生了什么?出了什么问题?你希望它做什么,它不做什么?