天天看點

PowerDesigner連接配接Oracle資料庫建表序列号實作自動增長

建立表就不說了。下面開始介紹設定自動增長列。

 1 在表視圖的列上建立。

輕按兩下表視圖,打開table properties ———>columens ,

輕按兩下要設定的列(顯示列的序号的那個按鈕,單擊後,會顯示橫向的黑色箭頭)。

打開column properties 對話框。在 ‘general’ 項中,

最下面,找到 sequence,下拉框 後面,有三個按鈕就 ‘create’,‘select’,‘properties’。 

建立的話就點選‘create' 打開 sequence properties 對話框,general 中的name, code 随意修改

切換到 physical options 項,輸入下面幾項内容

start with 1

increment by 1

minvalue 1

maxvalue 根據自己需要決定是否要設定。沒有的話,選擇 no max value

no cache 勾選

輸入完後,點選應用。建立完畢。在 preview 中 可以看到相應的建立代碼

同時,在table properties———>preview 的建立代碼中,自動加入了 觸發器trigger 的建立代碼。

建立完成。

使用:到table properties———>preview 中拷貝table 的建立代碼,指派到plsql中執行。

提示:不知道是我的powerdesigner 設定問題還是怎麼回事,table 的建立代碼中沒有自動加入 sequence 的建立部分。

是以,還要到sequence properties ———>preview 中,把sequence的建立代碼拷貝到 表建立的代碼中

放到 cteate table .... 和 create trigger ...中間

例如:

create table G_EC_LotteryCategory  (

   lcId               NUMBER(3)                       not null,

   lcName             NVARCHAR2(30),

   lcAbbr             NVARCHAR2(20),

   constraint PK_G_EC_LOTTERYCATEGORY primary key (lcId)

)

/

create sequence Sequence_LotCateID

 nomaxvalue

 minvalue 1

 nocache;

create trigger tib_g_ec_lotterycategory before insert

on G_EC_LotteryCategory for each row

declare

    integrity_error  exception;

    errno            integer;

    errmsg           char(200);

    dummy            integer;

    found            boolean;

begin

    --  Column lcId uses sequence Sequence_LotCateID

    select Sequence_LotCateID.NEXTVAL INTO :new.lcId from dual;

--  Errors handling

exception

    when integrity_error then

       raise_application_error(errno, errmsg);

end;

在plsql 中執行上端代碼。建立表;

添加記錄測試;

insert into G_EC_LotteryCategory(lcName,lcAbbr) values('1','1');

insert into G_EC_LotteryCategory(lcName,lcAbbr) values('2','2');

查詢後,看到的的id列是自動增長的。

2 先建立,然後在列的sequence 項中選擇。

 在 powerdesigner 左邊的樹中,你的model 項目的子菜單中有 sequence ,右鍵點選——> new

 打開 sequence properties 對話框,添加内容上面的方法類似。

 完場後,還是到表視圖中,輕按兩下列名,打開column properties 對話框。

 general——> sequence 的下拉框中就出現了剛才建立的 sequence ,選中,儲存即可。