在 Greenplum/Postgresql 数据库上使用 java 驱动程序创建序列不起作用

Posted

技术标签:

【中文标题】在 Greenplum/Postgresql 数据库上使用 java 驱动程序创建序列不起作用【英文标题】:Using java driver create sequence on Greenplum/Postgresql database doesn't work 【发布时间】:2017-03-01 08:08:12 【问题描述】:

我使用 Greenplum/PostgreSQL 作为数据库。

我打算通过jdbc创建序列,但是不行。

val conn=getConnection();
val st=conn.createState();
st.execute("CREATE SEQUENCE SEQ_4_MT_QUERY  INCREMENT BY 1  MINVALUE 0  MAXVALUE 99999999  START 0   CACHE 3  cycle");
conn.close();

没有发生错误,但没有创建序列。

有人有这种经历吗?谢谢。

Greenplum 是最新版本 jdbc驱动版本为:PostgreSQL-9.4.1212

【问题讨论】:

conn.commit(); 也许? 您使用的是 Greenplum 还是 Postgres? 哦,使用conn.commit(),可以,创建成功!谢谢@a_horse_with_no_name 【参考方案1】:

如果您的连接未处于自动提交模式,则必须提交您的 DDL 语句(至少在 Postgres 中 - 我假设在 Greenplum 中也是如此)。

所以你需要添加:

conn.commit();

execute() 通话之后。

【讨论】:

【参考方案2】:

我需要提交到数据库。

create sql 在调用 conn.commit() 之前生效,这取决于数据库连接池设置,但我使用池设置此提交自动。现在我认为此设置不起作用。

谢谢a_horse_with_no_name的建议

【讨论】:

以上是关于在 Greenplum/Postgresql 数据库上使用 java 驱动程序创建序列不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Greenplum/PostgreSQL中数据表数据去重的几种方法

GreenPlum/PostGreSQL表锁处理

在Greenplum(PostgreSQL)表中查询出所有包含emoji符号的数据

在Greenplum(PostgreSQL)表中查询出所有包含emoji符号的数据

无法从 Windows 上的 pgadmin 连接到 greenplum postgresql

GreenPlum/PostGreSQL 通过“表磁盘存储文件“获取表最后“更新时间“