您正在使用IPV4(35.168.110.128)访问本站 您本次共访问本站 1 次
 用户名: 密 码: 验证码:     用QQ登录本站
首页 软件 编程 笑话 知识 公告 台风 日历 计算器
[公益]文明驾车我带头,文明行路我带头,礼貌让座我带头      

【腾讯云】多款云产品1折起,买云服务器送免费机器,最长免费续3个月      
[公益] 节省一分零钱 献出一份爱心 温暖世间真情      
2022年 中秋节 21
2022年 国庆节 42
2023年 元 旦 134
2023年 春 节 155
 
本类新增
本类热门文章
您现在的位置:首页 >> 数据库 >> 内容
oracle数据库表实现自增主键的方法实例
内容摘要: 一、前言几天建表需要用到自增主键,于是使用序列(sequence)和触发器(trigger)来实现主键自增,在网上查了一些知识,顺便记录下;二、实现主键自动增长1、创建表格CREATETABLE'APP_COMM_T'('ID'NUMBER,'BASE_KEY'VARCHAR2(50BYTE),'BASE_NAME'VARCHAR2(100BYTE),'BA......
一、前言

几天建表需要用到自增主键,于是使用序列(sequence)和触发器(trigger)来实现主键自增,在网上查了一些知识,顺便记录下;

二、实现主键自动增长

1、创建表格

CREATETABLE"APP_COMM_T"

(

"ID"NUMBER,

"BASE_KEY"VARCHAR2(50BYTE),

"BASE_NAME"VARCHAR2(100BYTE),

"BASE_DESC"VARCHAR2(50BYTE),

"BASE_TYPE"VARCHAR2(10BYTE),

"BASE_SON"VARCHAR2(1BYTE),

CONSTRAINT"APP_COMM_T_PK"PRIMARYKEY("ID")

)

注:必须标明ID为主键

2、创建自增序列

createsequenceSEQ_APP_COMM_T

minvalue1

maxvalue999999

incrementby1

startwith1;

创建序列参数格式描述:

CREATESEQUENCESEQNAME//序列名字

MINVALUE1//最小值;设置NOMINVALUE表示无最大值

MAXVALUE1.0E20//最大值;设置NOMAXVALUE表示无最大值

INCREMENTBY1//每次自增1,也可写非0的任何整数,表示自增,或自减

STARTWITH1//以该值开始自增或自减

3、创建触发器

createtriggerTRIG_APP_COMM_T

beforeinsertonAPP_COMM_T

foreachrow

begin

selectSEQ_APP_COMM_T.nextvalinto:new.idfromdual;

end;

创建触发器描述:

beforeinsertonAPP_COMM_T

/*触发条件:当表APP_COMM_T执行插入操作时触发此触发器*/

foreachrow/*对每一行都检测是否触发*/

begin

/*触发后执行的动作,在此是取得序列SEQ_APP_COMM_T的下一个值插入到表APP_COMM_T中的id字段中*/

4、测试新增语句

已实现自增无需添加主键id

INSERTINTOAPP_COMM_T(BASE_KEY,BASE_NAME,BASE_DESC,BASE_TYPE,BASE_SON)

VALUES('B','ADMIN','賬號類型','AccountType','N');

上一篇:mysql实现将字符串字段转为数字排序或 下一篇:PostgreSQL实现按年、月、日、周
发布日期:2022/6/23
手机扫二维码直达本页
发布时间:13:00:57
点击:59
录入:齐天大圣
相关文章
Baidu

YiJiaCMS 6.3.1.220701(MSSQL) 闽ICP备05000814号-1
本空间由腾讯云(轻量应用服务器)提供,百度云加速提供加速防护
Copyright©2000-2022