Java Postgresql数据库中的BatchUpdateException?
我正在使用Postgresql数据库和Java。我试图使用prepared语句插入到Postgresql数据库中,所以我也使用批插入。我试图一次插入1000条记录 下面是我在尝试批量插入到我的一个表中时遇到的异常Java Postgresql数据库中的BatchUpdateException?,java,sql,postgresql,prepared-statement,batch-processing,Java,Sql,Postgresql,Prepared Statement,Batch Processing,我正在使用Postgresql数据库和Java。我试图使用prepared语句插入到Postgresql数据库中,所以我也使用批插入。我试图一次插入1000条记录 下面是我在尝试批量插入到我的一个表中时遇到的异常 java.sql.BatchUpdateException: Batch entry 0 INSERT into data_week (name, address, version, type, size, fax, phone) values('helloooooo', '360 S
java.sql.BatchUpdateException: Batch entry 0 INSERT into data_week (name, address, version, type, size, fax, phone) values('helloooooo', '360 S', '5.0beta4', NULL, '-1', '673', '300') was aborted. Call getNextException to see the cause.
有人知道这个错误是什么意思吗?另外,我是否可以对Postgresql数据库使用批插入
编辑:下面是我的表格数据模式
CREATE TABLE data_week
(
name character varying(256),
address character varying(256),
version character varying(256),
type integer,
size integer,
fax character varying(256),
phone integer,
created_date timestamp without time zone NOT NULL DEFAULT (now() - '7 days'::interval),
updated_date timestamp without time zone NOT NULL DEFAULT now()
)
根据我的经验,这些异常在违反约束时发生。您是否有一条或多条记录可能无法满足的约束条件?为了补充我之前关于约束条件的评论,我会将其复制到pgAdmin查询中,以查看返回的内容:
INSERT into data_week(名称、地址、版本、类型、大小、传真、电话)值('hellooooo'、'360 S'、'5.0beta4',NULL'-1'、'673'、'300'))
错误消息的最后一部分告诉您该怎么做。是你干的吗?(另外,批处理在PgJDBC中不是很有用;如果您试图提高性能,请使用多值插入和/或COPY
。@AnthonyAtkinson,我已经单独插入了值,它确实被插入了。这意味着还有其他问题吗?您是否按照错误消息的建议调用了getNextException()
?如果是,下一个异常包含什么?