【发布时间】:2012-08-05 00:09:50
【问题描述】:
我正在使用Apache DdlUtils 查询 PostgreSQL 数据库以获取表和列元数据(最终目标是自动生成 javax.persistence-annotated 实体 bean)。然而,在我看来,DdlUtils 库没有提供一种方法来获取自动增量列中使用的序列名称。 Column 类提供了一个 isAutoIncrement 方法来查询自动增量状态,但我找不到获取与其关联的序列名称的方法。这是 PostgreSQL 中 DDL 的一部分,例如:
orders=# \dS customer
Table "public.customer"
Column | Type | Modifiers
---------------+-------------------+--------------------------------------------------
id | integer | not null default nextval('cst_id_seq'::regclass)
name | character varying | not null
(...)
我应该直接查询一些元数据/目录表来获取那部分信息吗?
【问题讨论】:
-
并非每个数据库都通过自动生成序列来支持它们来实现自动增量列。 (IIRC,MySQL 和 SQL Server 都没有。)DdlUtils 可能更喜欢可移植性而不是灵活性,只是没有为那些这样做的人提供特殊的 API。
标签: postgresql ddlutils