ORACLE表建立自增列
create tablespace studentDB
datafile 'E:\datafiles_1.dbf' size 10m;
create user Huang_Ying_Bo
identified by hyb123456
default tablespace studentDB
grant connect to Huang_Ying_Bo
grant resource to Huang_Ying_Bo
drop table TechEd_T_Students
/*创建学生信息表*/
create table TechEd_T_Students
(
Id integer,
Name varchar2(20),
Adress varchar2(40)
);
alter table TechEd_T_Students
add constraint PK_TechEd_T_Students_Id primary key(Id);
/*创建课程序列Sequence_TechEd_T_Students_Id*/
drop sequence Sequence_TechEd_T_Students_Id;
CREATE SEQUENCE Sequence_TechEd_T_Students_Id;
/*建立触发器*/
drop TRIGGER Trigger_Insert__Students_Inc;
CREATE OR REPLACE TRIGGER Trigger_Insert__Students_Inc
BEFORE INSERT ON TechEd_T_Students
FOR EACH ROW
WHEN (NEW.ID IS NULL)
BEGIN
SELECT Sequence_TechEd_T_Students_Id.NEXTVAL INTO :NEW.Id FROM DUAL;
END;
insert into TechEd_T_Students(Name,Adress) values('黄涛','重庆北碚');
insert into TechEd_T_Students(Name,Adress) values('刘册','重庆沙坪坝');
insert into TechEd_T_Students(Name,Adress) values('邓雨','重庆渝北');
insert into TechEd_T_Students(Name,Adress) values('萧何','河南沛县');
select * from TechEd_T_Students
drop table TechEd_T_Scources
/*创建课程信息表*/
create table TechEd_T_Scources
(
Id integer,
Name varchar2(20)
);
alter table TechEd_T_Scources
add constraint PK_TechEd_T_Scources_Id primary key(Id);
/*创建课程序列Sequence_TechEd_T_Scources_Id*/
drop sequence Sequence_TechEd_T_Scources_Id;
CREATE SEQUENCE Sequence_TechEd_T_Scources_Id;
/*建立触发器*/
drop TRIGGER Trigger_Insert__Scources_Inc;
CREATE OR REPLACE TRIGGER Trigger_Insert__Scources_Inc
BEFORE INSERT ON TechEd_T_Scources
FOR EACH ROW
WHEN (NEW.ID IS NULL)
BEGIN
SELECT Sequence_TechEd_T_Scources_Id.NEXTVAL INTO :NEW.Id FROM DUAL;
END;
insert into TechEd_T_Scources(Name) values('数据结构');
insert into TechEd_T_Scources(Name) values('ORACLE数据库优化');
select * from TechEd_T_Scources
drop table TechEd_T_Scores
/*创建学生分数信息表*/
create table TechEd_T_Scores
(
Id integer,
Student_Id integer,
Scource_Id integer,
Grade integer
);
alter table TechEd_T_Scores
add constraint PK_TechEd_T_Scores primary key(Id);
alter table TechEd_T_Scores
add constraint FK_Scores_Students_Id foreign key(Student_Id) references TechEd_T_Students(Id);
alter table TechEd_T_Scores
add constraint FK_Scores_Scources_Id foreign key(Scource_Id) references TechEd_T_Students(Id);
alter table TechEd_T_Scores
add constraint CK_TechEd_T_Scores_Grade check(Grade between 0 and 100);
/*创建分数序列Sequence_TechEd_T_Scores_Id*/
drop sequence Sequence_TechEd_T_Scores_Id;
CREATE SEQUENCE Sequence_TechEd_T_Scores_Id;
/*建立触发器*/
drop TRIGGER Trigger_Insert_Scores_Inc;
CREATE OR REPLACE TRIGGER Trigger_Insert_Scores_Inc
BEFORE INSERT ON TechEd_T_Scores
FOR EACH ROW
WHEN (NEW.ID IS NULL)
BEGIN
SELECT Sequence_TechEd_T_Scores_Id.NEXTVAL INTO :NEW.Id FROM DUAL;
END;
insert into TechEd_T_Scores(Student_Id,Scource_Id,Grade) values(1,1,88);
insert into TechEd_T_Scores(Student_Id,Scource_Id,Grade) values(1,2,88);
insert into TechEd_T_Scores(Student_Id,Scource_Id,Grade) values(2,1,89);
insert into TechEd_T_Scores(Student_Id,Scource_Id,Grade) values(2,2,89);
insert into TechEd_T_Scores(Student_Id,Scource_Id,Grade) values(3,1,90);
insert into TechEd_T_Scores(Student_Id,Scource_Id,Grade) values(3,2,90);
select * from TechEd_T_Scores;
select * from TechEd_T_Scources;
select * from TechEd_T_Students;
ORACLE表建立自增列的更多相关文章
- MySQL面试题之为什么要为innodb表设置自增列做主键?
为什么要为innodb表设置自增列做主键? 1.使用自增列做主键,写入顺序是自增的,和B+数叶子节点分裂顺序一致 2.表不指定自增列做主键,同时也没有可以被选为主键的唯一索引,InnoDB就会选择内置 ...
- oracle 实现插入自增列(类似SqlServer Identity)
oracle不像sql server 有关键字identity直接可插入数据时自增 ,Oracle是不能用Identity,可以使用Sequence Create Table Tempinfo( id ...
- 重置SQLSERVER表的自增列,让自增列重新计数【转】
很多时候我们需要重置某个表的自增列,让自增列重新从1开始记数.最蠢的方法当然是把该表删掉再重新建表了.其实,还有其它的方法可以重置自增列的值: 方法一:使用TRUNCATE TABLE语句: TRUN ...
- Oracle表级约束和列级约束
Oracle表级约束和列级约束 1. 表级定义约束 指的是在定义完一个表所有列之后,再去定义所有相关的约束. 注意:not null 约束只能在列级上定义. 2. 列级定义约束 指的是在定义一个表的每 ...
- [转]oracle 实现插入自增列
本文转自:http://blog.csdn.net/love_zt_love/article/details/7911104 刚使用oracle,它和sql server 好多地方还是有所不同的,简单 ...
- Oracle 12c的自增列Identity Columns
在Oracle的12c版本中,Oracle实现了类似MySQL中的auto_increment的自增列,下面我们看一起Oracle是怎么实现的. Oracle Database 12c Enterpr ...
- sqlite3创建自增主键,以及清空表使自增列归零
1.创建自增主键 CREATE TABLE tb_python (ID INTEGER PRIMARY KEY AUTOINCREMENT,TITLE TEXT,URL TEXT); 2.清空表 SQ ...
- 重置SQLSERVER表的自增列,让自增列重新计数
SQL的自增列挺好用,只是开发过程中一旦删除数据,标识列就不连续了 写起来 也很郁闷,所以查阅了一下标识列重置的方法 发现可以分为三种: --- 删除原表数据,并重置自增列truncate table ...
- mysql中,通过脚本设置表的自增列,及自增步长
设置自增列(其实通过navicate可以直接设置的,也方便:要不然可能需要删除列了) ALTER TABLE `domain_dns_tucows` CHANGE `id` `id` INT(11) ...
随机推荐
- Qt Quick 布局演示
于 Qt Widgets 于,我们经常使用许多布局管理器来管理界面 widgets . 于 Qt Quick 实际上,有两个相关的管理和布局库,所谓集 Item Positioner ,所谓集 Ite ...
- 网络资源(3) - iBatis视频
2018_08_24 http://v.youku.com/v_show/id_XMjk2ODY2OTE2.html iBatis视频教程01
- String.Split()功能
我们在过去的教训 String.Join功能(http://blog.csdn.net/zhvsby/archive/2008/11/28/3404704.aspx).当中用到了String.SPli ...
- measureChildren作品
无论是在改写View依然是ViewGroup什么时候.特别ViewGrop什么时候,通常是不可避免的重写onMeasure方法,我们一定会调用setMeasuredDimension()将測量好的宽高 ...
- 怎样将short[]数组转换成byte[]数组
byte[] byteArray = Array.ConvertAll<short, byte>(shortArray, Convert.ToByte);
- linux Packet socket (1)简单介绍
本文主要来自于linux自带的man packet手冊: http://man7.org/linux/man-pages/man7/packet.7.html 平时常常使用的INET套接字提供的是7层 ...
- CSS3+HTML5特效4 - 横向无缝滚动
先看例子 This is a test 1. This is a test 2. This is a test 3. This is a test 4. This is a test 5. This ...
- Host和Server的开发
Host和Server的开发 对于开发人员来说,代码就是最好的文档,如上一篇博文所说,下面我们就会基于Kanata项目的一些具体调用代码,来进一步深入理解OWIN的实现和作用. 今天我们先针对Host ...
- CSS3 制作向左、向右及关闭图标的效果
先看一下效果 1.鼠标移入前的效果 2.鼠标移入的效果 3.制作步骤如下: 轮廓的CSS,就是利用圆角和宽度高度,制作出一个圆: <style> /*显示方式为 inline-block* ...
- js 控制radio选项
<input type="radio" name="rk" value="aaa" />1<input type=&quo ...