oracle数据库创建表且主键自增

Oracle数据库中,设置ID自增并不像MySQL中那么简单,Oracle中需要设置一个序列。

现在给出方式,具体如下:

第一步:建立一个表

create table ContestDB
(
   TID  NUMBER(10) PRIMARY KEY,
   TEAMNUM varchar(50)  not null,
    MARKNUM varchar(50)
); 

第二步:设置ID自增

第一种方式:不使用触发器

1 CREATE SEQUENCE SEQ_TID;
2 INSERT INTO ContestDB VALUES(SEQ_TID.NEXTVAL,‘B20007009‘,‘B001 ‘);
3 INSERT INTO ContestDB VALUES(SEQ_TID.NEXTVAL,‘B20007010‘,‘B003 ‘);  

第二种方式:使用Trigger 触发器

 1 --自定义一个序列
 2  create sequence ContestDB_sequence
 3        increment by 1 --每次增加几个,我这里是每次增加1
 4        start with 1   --从1开始计数
 5        nomaxvalue      --不设置最大值
 6        nocycle         --一直累加,不循环
 7        nocache        --不建缓冲区
 8 --创建一个触发器
 9 CREATE TRIGGER ContestDB_trigger
10    BEFORE INSERT ON ContestDB
11    FOR EACH ROW
12    WHEN (new.TID is null) --只有在tid为空时,启动该触发器生成tid号
13 begin
14    select ContestDB_sequence.nextval into :new.TID from sys.dual;
15 end;
16
17 insert into ContestDB(TEAMNUM,MARKNUM) values(‘A20007013‘,‘A002‘);
18
19 insert into ContestDB(TEAMNUM,MARKNUM) values(‘A20007014‘,‘A003‘);   

时间: 2024-11-06 09:55:29

oracle数据库创建表且主键自增的相关文章

Oracle 学习----:创建表(主键自增)

一.创建表 create table testTable ( Id numbere, name varchar2(100), age number, createTime date, primary key(Id) ) 二.创建序列 create sequence seq_test 三.创建触发器 create or replace trigger autoId before insert on testTable for each Row when (NEW.ID is null) begin

ORACLE: 查询(看)表的主键、外键、唯一性约束和索引

ORACLE: 查询(看)表的主键.外键.唯一性约束和索引 1.查找表的所有索引(包括索引名,类型,构成列) select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and t.table_name = i.table_name and t.table_name = 表名 2.查找表的主键(包括名称,构成列): select cu.* from user_co

Oracle数据库创建表空间

--Oracle数据库创建表空间 create tablespace new_taspace --表空间名 DATAFILE 'D:\NEWTABLESPACE.DBF'   --表空间关联的数据文件和位置 size 200M --文件初始大小 autoextend on next 20MB MAXSIZE 400MB; --文件大小可自动扩展,每次扩展20MB,最大400MB --创建表空间 create tablespace new_taspace1 --表空间关联的数据文件和位置 DATA

oracle 如何获取表的主键列名,如何获取表的所有列名

获取表的主键列名 SQL  select   *   from   user_cons_columns     where   constraint_name   =   (select   constraint_name   from   user_constraints                 where   table_name   =   'BST_FAVORITE'  and   constraint_type   ='P'); 记住:表名要大写执行试试,该表所有主键都查出来了

oracle数据库中的表设置主键自增

oracle中没有自增字段,可通过序列+触发器间接实现,cmd中sqlplus登录,直接运行即可.一般要经过一下几步: 1建立数据表 create table Test_Increase(           userid number(10) primary key,  /*主键,自动增加*/           username varchar2(20)           ); 2创建自动增长序列 CREATE SEQUENCE TestIncrease_Sequence INCREMEN

oracle sql 创建表格 oracle建表设置主键自增

1.新建table CREATE TABLE ysb_log( id number(8) primary key not null , tbdate varchar(50) NULL, tb_time varchar(50) NOT NULL, tblog varchar(500) NOT NULL, tbreor varchar2(20) null, bs varchar(50) NOT NULL ); 在Oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按

oracle数据库创建表

实际工作中,在数据库中创建表是经常会用到的.我们今天呢?主要给大家来分享一下在数据库如何通过sql语句去创建表.其实,创建表很简单,只需要把数据库的数据类型和约束搞清楚就可以了,其他的就好说了.接下来呢,开始我的表演.首先,先使用plsql连接到oracle数据库,先保证下面的服务是开启的. 我们本次创建表的需求是:创建一张班级表,和一张学生表. 1.首先班级表作为主表也就是所谓的主键.在主表中我们这里使用的约束是primarykey 和not null  (当然不局限于这些) create t

创建表 添加主键 添加列常用SQL语句

--删除主键 alter table 表名 drop constraint 主键名--添加主键alter table 表名 add constraint 主键名 primary key(字段名1,字段名2……)--添加非聚集索引的主键alter table 表名 add constraint 主键名 primary key NONCLUSTERED(字段名1,字段名2……) 新建表: create table [表名] ( [自动编号字段] int IDENTITY (1,1) PRIMARY

Linux oracle数据库创建表空间、用户并赋予权限

管理员用户登录oracle数据库 1.创建临时表空间 select name from v$tempfile;查出当前数据库临时表空间,主要是使用里面的存放路径: 得到其中一条记录/opt/oracle/oradata/orcl/temp01.dbf 创建临时表空间:create temporary tablespace plncontrol_temp tempfile '/opt/oracle/oradata/orcl/plncontrol_temp.dbf' size 100m reuse