在 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)表中查询出所有包含emoji符号的数据
在Greenplum(PostgreSQL)表中查询出所有包含emoji符号的数据