gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 12:44:37 29 4
gpt4 key购买 nike

我正在使用 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/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com