postgresql - 如何将序列关联到 PowerDesigner 中的列?

标签 postgresql powerdesigner

我正在使用 powerdesigner 15.2 为 postgresql 数据库建模,但我无法将序列与 PK 关联... 在网上读到:

“要将序列与列相关联,请双击列条目。然后,在“常规”选项卡中,指定序列的名称。”

但我已经这样做了...

Sequence associated

问题是,当我生成数据库时,只是简单地创建了序列,但没有与列关联...

create sequence SQ_CARGO;

create table CARGO (
   ID                   INT4                 not null,
   NOME                 VARCHAR(20)          not null,
   ROLE                 VARCHAR(100)         not null,
   constraint PK_CARGO primary key (ID)
);

Powerdesigner 中的当前 DBMS:PostgreSQL 8(但我使用的是 postgresql 9.4)

有人知道怎么做吗?否则我将被迫为每个表手动设置:

ALTER TABLE cargo ALTER COLUMN ID SET DEFAULT NEXTVAL('SQ_CARGO'::regclass);

最佳答案

为了解决这个问题,我编写了这段代码并在 DBMS 属性中替换了值:(Script->Objects->Table->Create)。

create [%Temporary% ]table [%QUALIFIER%]%TABLE% ( %TABLDEFN% )
[%OPTIONS%];

.foreach_item(Columns)
    .if (%COLNNO%==1) && (%Primary% == TRUE) && (%SQNC% != "") 
        ALTER TABLE [%QUALIFIER%]%TABLE% ALTER COLUMN %COLUMN% SET DEFAULT
nextval('[%QUALIFIER%]%SQNC%')
    .endif 
.next(\n)

利用它,我在生成代码 SEQUENCE 时遇到了问题。

我无法获取要使用前缀对象的所有者生成的代码。

例如: 代码生成如下:

CREATE SEQUENCE TABLE_SQ;

它应该像这样生成:

CREATE SEQUENCE OWNER.TABLE_SQ;

关于postgresql - 如何将序列关联到 PowerDesigner 中的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31347425/

相关文章:

mysql - PowerDesigner CDM、PDM 和 MySQL

reference - 如何在powerdesigner中获取表格的所有引用?

database - Postgres 基于聚合优化查询索引

LINUX GNU 在 Makefile 中创建新用户 Postgres DB

python - 将密码字段迁移到 Django

powerdesigner - 如何自动显示逻辑图中的关系?

postgresql - 如何将 "1 day 01:30:00"之类的间隔转换为 "25:30:00"?

database - Postgres 中的 UUID 主键,什么插入性能影响?

powerdesigner - 为物理数据图中的表列添加注释

PowerDesigner 引用线困惑