1

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

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

但我已经这样做了......

序列相关

问题是,当我生成数据库时,只是创建了序列,但与列无关......

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);
4

3 回答 3

1

为了解决这个问题,我编写了这段代码并在 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 的创建时遇到了问题。

我无法使用前缀对象的 OWNER 生成代码。

例如:代码生成如下:

CREATE SEQUENCE TABLE_SQ;

它应该像这样生成:

CREATE SEQUENCE OWNER.TABLE_SQ;
于 2015-07-17T18:16:00.350 回答
1

@Gilvan:您必须在“所有者”组合框中的“新序列”窗口中选择所有者。

于 2015-07-21T14:05:53.353 回答
1

是一个错误!下载一个新版本并且工作正常。

于 2015-09-28T14:50:42.900 回答