Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PostgreSQL表的测试数据_Sql_Postgresql_Postgresql 9.3 - Fatal编程技术网

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

如何使用一个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 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行或更多行。我更新了帖子。如何生成随机字符串?那么,测试添加的代码时发生了什么?出了什么问题?你希望它做什么,它不做什么?