Oracle简单使用之实现自增长

序列,触发器等相关的使用

微软下的Sqlserver实现增长只要设定列identity

create table myTable(

id int identity(1,1) primary key not null,

name varchar(15)

);

MySql下实现自增长只要设定列auto_increment

create table myTable(

id int auto_increment primary key not null,

name varchar(15)

);

Oracle数据库有点不同,没有像MySql和Sqlserver数据库的那样具有一个自增长列类型,而是通过序列来实现唯一性和自增长性.

create table employee(
       PID number,
       PTitle varchar2(16),
       PContent varchar2(max)
       PublishDate date,
       IsShow number,
       constraint pk_employee primary key(PID)
       );

序列:

create sequence publish_autoinc
     minvalue 1
     maxvalue 9999999999999999999999999999
     start with 1
     increment by 1
     nocache;

一旦定义了publish_autoinc序列,就可以访问序列的curval和nextval属性。
•curval:返回序列的当前值
•nextval:先增加序列的值,然后返回序列值

insert into employee values(publish_autoinc.nextval, ‘PTitle1‘,‘PContent1‘,sysdate,1);

使用触发器:

  create or replace trigger insert_publish_autoinc
     before insert  on publish
     for each row
          begin
               select publish_autoinc.nextval into :new.PID from dual;
          end insert_publish_autoinc;
                 

这样每当对publish表进行Insert操作,都会自动将序列的下一个值插入到PID中,从而实现自增长.

END

时间: 2024-10-10 05:05:39

Oracle简单使用之实现自增长的相关文章

Oracle简单的备份和恢复-导出和导入(2)

ylbtech-Oracle:Oracle简单的备份和恢复-导出和导入(2) 简单的备份和恢复-导出和导入(2) 1. 用户导入导出文件中的一张表(emp)返回顶部 0.1, 我们在sql plus中删除掉一张表emp,把dept表的记录删空. drop table emp; delete from dept; 之后我们先利用刚才导出的mytable.dmp导入emp表.具体导入步骤如下: 1.在命令行下输入imp命令. 2.系统首先提示我们输入用户名和密码,在这里我们可以用scott/tige

oracle 简单SQL

1, insert into test select * from test;(造测试数据) 2, create table b as select * from a; (创建表结构一样的空表,数据可同上插入数据) 3,linux系统下让sqlplus支持历史命令回调 在linux中实现上述功能,需要一个小工具,叫做rlwrap,这个程式本身是个Shell,可以运行任何你提供给它的命令包括参数,并添加命令历史浏览功能. The rlwrap program is under the GPL li

Oracle简单的备份和恢复-导入和导出

ylbtech-Oracle:Oracle简单的备份和恢复-导入和导出  Oracle安全运行离不开良好的备份和恢复机制,因为我们不是DBA.所以我们也就不过多的讲解DBA的备份和恢复.作为程序员开发者来说,必须了解的是数据的导入和导出,利用这个方法我们可以搬迁数据库和数据. 1. 导出(exp)返回顶部 1.1, Oracle简单的备份和恢复-导出(exp) 1.2, 1.3, 2. 导入(imp)返回顶部 2.1, Oracle简单的备份和恢复-导入(imp) 2.2, 2.3, 3. 导入

oracle简单使用

连接方式 Oracle简单使用 Emp数据表 1.sqlplus命令 1)Scott用户登录:Sqlplus scott/tiger查询emp表的全部内容Select * from emp;问题:(1)表格的显示格式混乱(2)所有表格都有标题行设置每行显示的数据长度:set linesize 300;设置每次显示胡行数:set pagesize 30; 再执行 select * from emp: 命令格式:col job for a8; 列空格设定8 Col job for a8:select

oracle ORA-01653 表空间不能自动增长的原因及处理方法

背景:表空间已经设置自动增长,但达到一定大小后仍会报ORA-01653. 解决过程: 查阅相关资料,多数只给出了解决办法,但这个解决办法经过验证也是临时了,到了一定大小仍旧会报错,到时只能再次采取同样办法进行操作. 通过几台机器的观察发现,报出该错误时,数据表文件的大小是一致的32G.因此判断,某种原因导致了该限制.于是进行相关搜索,最终找到了答案,但是,对于这一问题描述,有2个说法:1.windows系统下,单文件有32G的限制,但该说法我没有查到有力的支持证据,即便有其他人提到该说法,但并没

oracle 简单入门

1.什么是主键? 答:在数据表中能够唯一和完整标识数据列和行的组合,只能有一个且不能为空. 2.什么是外键? 答:在一个表中存在另一个表的外键. 3.存储过程和触发器的区别 答:触发器和存储过程非常相似,触发器也是sql语句集,两者唯一的区别就是触发器不能使用execute语句,而是在用户执行Transact-SQL语句时自动触发执行. 触发器是在一个修改了指定表中的数据执行的存储过程.通常通过创建触发器来强制实现不同表中的逻辑相关数据的引用完整性和一致性.由于用户不能绕过触发器,所以可以使用它

Oracle简单学习笔记

创建用户 1 CREATE USER username identified by password;//这是最简单的用户创建SQL语句. 2 CREATE USER username identified by password default tablespace users temporary tablespace temp;//增加指定表空间的SQL语句. 分配用户权限 1 grant 权限/角色 to 用户;//把权限或角色的权限 分配给 用户. 2 revoke 权限/角色 from

oracle 简单查询

数据查询是用SELECT命令从数据库的表中提取信息. 语法结构:简单查询 SELECT *|列名|表达式 FROM 表名 WHERE 条件 ORDER BY 列名 语法解析: *表示表中的所有列. 列名可以选择若干个表中的列名,各个列表中间用逗号分隔. 表达式可以是列名.函数.常数等组成的表达式. WHERE子句是查询的条件. ORDER BY 要求在查询的结果中排序,默认是升序. Oracle中可以把查询的结果根据结果集中的表结构和数据形成一张新表. 语法结构:根据结果集创建表 CREATE

oracle 简单备注

1. 建立数据库 备注: 1) oracle 不同于mysql 可以直接create database 2) oracle 创建schema时对应一个用户,即该schema的访问用户,与用户一一对应:但可以存在多个访问用户(带权限控制) 1.1 创建数据库文件 CREATE TABLESPACE XX LOGGING DATAFILE 'D:\app\XX\oradata\orcl\XX.dbf' SIZE 1000M; create temporary tablespace XX tempfi