gpt4 book ai didi

sql - PostgreSQL 表的测试数据

转载 作者:行者123 更新时间:2023-11-29 12:43:43 24 4
gpt4 key购买 nike

如何使用一个 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;
}

我得到错误

org.postgresql.util.PSQLException: ERROR: INSERT 的表达式多于目标列 位置:7

最佳答案

错误消息正确地告诉您,您正在尝试将三列数据 (?, generate_series(1,1000), md5(random()::text))) 插入到两列中列 (INSERT INTO KNOWLEDGEBASE (ID, NAME))。目前尚不清楚这与您的 create table 语句有什么关系,该语句创建了一个具有不同名称、有七列的表。

这种查询将插入 100 行。

insert into release_planning
select n, 'a', current_date, current_date, 'a', current_date, current_date
from generate_series (1, 100) n;

如果您想要随机数据,最好的方法可能是编写一些函数,并在该语句的 select 子句中使用它们。所以,我可能会写

  • 随机整数(低,高),
  • random_date(低,高)和
  • 随机字符串(长度),

然后这样称呼他们。

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;

关于sql - PostgreSQL 表的测试数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36470179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com