1

postgresqlデータベースをモデル化するためにpowerdesigner 15.2を使用していますが、シーケンスを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 に答える