在 Greenplum/Postgresql 数据库上使用 java 驱动程序创建序列不起作用
Using java driver create sequence on Greenplum/Postgresql database doesn't work
我使用 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
如果您的连接未处于自动提交模式,您必须提交您的 DDL 语句(至少在 Postgres 中 - 我假设这在 Greenplum 中是相同的)。
所以你需要添加:
conn.commit();
在 execute()
调用之后。
我需要提交给数据库。
create sql直到调用conn.commit()才会生效,这个要看数据库连接池的设置,但是我用的是这个commit auto.Now的池设置,我觉得这个设置不行。
感谢a_horse_with_no_name的建议
我使用 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
如果您的连接未处于自动提交模式,您必须提交您的 DDL 语句(至少在 Postgres 中 - 我假设这在 Greenplum 中是相同的)。
所以你需要添加:
conn.commit();
在 execute()
调用之后。
我需要提交给数据库。
create sql直到调用conn.commit()才会生效,这个要看数据库连接池的设置,但是我用的是这个commit auto.Now的池设置,我觉得这个设置不行。
感谢a_horse_with_no_name的建议