【发布时间】:2010-07-29 01:37:18
【问题描述】:
我一直在寻找答案,但到目前为止没有运气......
我想对可能有数百万条记录的数据库执行批量操作,阅读 PostgreSQL 指南:'13.4 填充数据库'1,它建议删除索引和外键约束以加快复制操作。
我正在尝试使用 JDBC 语句来完成此操作,我发现我可以毫无问题地删除索引,但是在填充数据库后重新创建它们有问题。我在创建的索引名称处或附近出现语法错误:
Statement stmt = connection.createStatement();
String query = "CREATE UNIQUE INDEX type_uk ON cell (field1, field2, field3, field4) WHERE field3 AND field4 IS NOT NULL TABLESPACE lcindex";
stmt.executeUpdate(query);
connection.commit();
如果我在 psql 中执行这个查询,它会成功创建索引,所以我有点困惑......
任何帮助、见解、建议等将不胜感激:) 提前致谢。
【问题讨论】:
-
我可以使用 Jython 的 JDBC 创建这样的索引(没有 TABLESPACE)。给我们更多信息:是否可以创建简单的索引?你用的是什么版本的 JDBC 和 PostgreSQL?
-
我一直在尝试删除并重新创建这些唯一索引,我会尝试删除一个简单的索引并回复您...我正在使用 JDBC 8.4-701 和 PostgreSQL 8.3.3.
-
postgresql 服务器日志是否也显示错误,与您发送的 SQL 相同? (以防万一 SQL 在途中发生了什么事情......)
标签: java postgresql jdbc foreign-keys indexing