powerdesigner设置表主键列为自动增长

powerdesigner 版本12.5

创建表就不说了。下面开始介绍设置自动增长列。

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数据库。

如果是创建的是mysql数据库模型,打开table properties,选择columens双击,在 ‘general’ 项中 , 有个 identity 的复选框,勾选即可。

时间: 2024-10-16 13:32:34

powerdesigner设置表主键列为自动增长的相关文章

表主键自增长Mybatis插入数据报错

在使用MyBatis进行开发的过程中,当你遇到向某张数据库表中插入一条记录时,出现数据插入不正确,如果自己确定是因为主键的原因,类似如下错误提示: 而你的本意是主键自动增长,那么,可参考如下方法尝试解决: 第一步:在配置中设置主键为自增长(数据库我使用的是MySql) 如果你是使用MyBatis自动生成的插入语句,除了设置上面给出的useGeneratedKeys="true"之外,还需要将如下图所示红色部分去掉,这是查询主键最大值的一段代码. 如果还未解决,这时你应该检查一下你的数据

MySQL数据库8(九)列属性之主键、自增长

主键 顾名思义,主要的键,primary key,在一张表中,有且只有一个字段,里面的值具有唯一性 创建主键 随表创建 系统提供了两种增加主键的方式: 1.直接在需要当做主键的字段之后,增加primary key属性来确定主键 2.在所有字段之后增加primary key选项:primary key(字段信息) 表后增加 基本语法:alter table 表名 add primary key(字段); 查看主键 方案1: 查看表结构 方案2:查看表的创建语句 删除主键 基本语法:alter ta

SQLITE数据表主键设置Id自增方法

SQLITE数据表主键设置Id自增方法 标签: sqliteintegerinsertnulltableapi 2010-01-12 08:39 35135人阅读 评论(8) 收藏 举报  分类: SQL(11)  版权声明:本文为博主原创文章,未经博主允许不得转载. 搞定了一个困扰许久的问题,原来sqlite中的主键也是可以设置为自增的:)方法就是声明为 INTEGER PRIMARY KEY 的字段可以自动增加.    网上查到资料说,从 SQLite 的 2.3.4 版本开始,如果将一个表

使用GUID作为数据表主键的好处(转)

http://blog.itpub.net/3875/viewspace-789520/ 分类: 数据库开发技术 使用GUID作为数据表主键的好处 [@[email protected]] 使用GUID作为数据表主键的好处 数据表主健通常采用以下三种方式: 1.         自动递增值. 2.         唯一名称.这个是使用自己定义的算法来生成一个唯一序列号. 3.         GUID(全局唯一标识符). GUID与自动递增值及唯一名称比较 GUID 在客户端生成,由GUID的特

主表和子表主键设计

将主表主键设置为ID,另外将子表主键设置为AID,子表的外键ID和主表一样.那么当发生对主表记录进行删除操作,可以方便的对关联的子表数据一并删除! declare @selectStr nvarchar(1000) set @selectStr='delete from Bdrdrecord11 ' + @searchString+' delete from Bdrdrecords11 '+@searchString exec (@selectStr)

注冊表主键的含义

我们都知道,我们在使用电脑时.在"開始"→"执行"中输入"regedit"并单击"确定"button后,能够打开"注冊表编辑器"对话框,此时能够看见在左边的窗体中显示了注冊表的全部主键.对于Windows 2003/2000/XP 来说仅仅有五个主键.新手要想看的懂注冊表就必须了解这五个主键的指向是什么.以下我们就来一起学习下注冊表主键的详细含义. 1.HKEY_CLASSES_ROOT 该主键用于管理文件

Mybatis框架(9)---Mybatis自定义插件生成雪花ID做为表主键项目

Mybatis自定义插件生成雪花ID做为主键项目 先附上项目项目GitHub地址 spring-boot-mybatis-interceptor 有关Mybatis雪花ID主键插件前面写了两篇博客作为该项目落地的铺垫. 1.Mybatis框架---Mybatis插件原理 2.java算法---静态内部类实现雪花算法 该插件项目可以直接运用于实际开发中,作为分布式数据库表主键ID使用. 一.项目概述 1.项目背景 在生成表主键ID时,我们可以考虑主键自增 或者 UUID,但它们都有很明显的缺点 主

mysql 表主键类型由int 改为bigint

需求:由于业务的需要,tmp_employees的emp_no主键字段类型为int已经不能满足业务的需求,此时需要将该表主键字段类型由int 更改为 bigint 使用工具:pt-online-schema-change ./pt-online-schema-change  --user=root --password=root456 --recursion-method="processlist" --alter="modify column emp_no bigint n

设置表的属性值自动增加

设置表的属性值自动增加,比如插入第一条记录时 id 为 1,插入第二条记录时 id 为 2,以此类推,没增加一条记录,字段值自动加 1 mysql> CREATE TABLE tb_emp8    -> (    -> id INT(11) PRIMARY KEY AUTO_INCREMENT,   # 指定员工的编号自动递增    -> name VARCHAR(25) NOT NULL,    -> deptId INT(11),    -> salary FLOA