开发者社区> 杰克.陈> 正文

PowerDesigner连接Oracle数据库建表序列号实现自动增长

简介: 原文:PowerDesigner连接Oracle数据库建表序列号实现自动增长 创建表就不说了。下面开始介绍设置自动增长列。  1 在表视图的列上创建。双击表视图,打开table properties ———>columens ,双击要设置的列(显示列的序号的那个按钮,单击后,会显示横向的黑色箭头)。
+关注继续查看
原文: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
increment by 1
start with 1
 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 ,选中,保存即可。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
oracle实现主键自增长及自动生成策略
oracle实现主键自增长及自动生成策略
260 0
Oracle使用expdp/impdp实现全库导入导出的整体流程
Oracle的全库导入,首先一点必须先创建数据库,创建了数据库,才能往该数据库导入所有数据。相对来说,使用Oracle进行数据导入导出还很有些“麻烦”的,大多数资料上来就是......
1969 0
利用Spark实现Oracle到Hive的历史数据同步
利用Spark实现Oracle到Hive的历史数据同步
155 0
利用ogg实现oracle到kafka的增量数据实时同步
利用ogg实现oracle到kafka的增量数据实时同步
229 0
SpringBoot整合oceanbase,实现oracle无缝切换到oceanbase
随着去“IOE”化的潮流,近些年来,许多与国家相关的项目不约而同到地往”国产化“方向靠拢,不可避免地,一些项目可能需要进行数据库迁移。
424 0
Oracle数据库访问其他用户下的表,不加表所属的用户名的实现方法
Oracle数据库访问其他用户下的表,不加表所属的用户名的实现方法
466 0
Oracle 10g通过创建物化视图实现不同数据库间表级别的数据同步
Oracle 10g通过创建物化视图实现不同数据库间表级别的数据同步
157 0
跨Oracle数据库实现表级别的实时同步
跨Oracle数据库实现表级别的实时同步
302 0
Oracle跨数据库实现定时同步指定表中的数据
Oracle跨数据库实现定时同步指定表中的数据
681 0
+关注
杰克.陈
一个安静的程序猿~
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
迁移 ORACLE 最佳实践
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关镜像