为Oracle数据库表创建自动增长序列及Oracle的常见操作

  1. 云栖社区>
  2. 博客>
  3. 正文

为Oracle数据库表创建自动增长序列及Oracle的常见操作

暖枫无敌 2013-03-07 16:34:04 浏览270
展开阅读全文

在SQL Server中,建立表字段自动增长,可以使用 identity(1,1)实现,但是在Oracle没有这样的函数,我们必须得为其创建序列(Sequence),方法如下:

 

--创建test表
create table test
(
   ID int not null primary key,
   Name varchar(20)
);

--为test表创建自动增长序列
CREATE SEQUENCE GRADE_SEQUENCE
increment by 1
start with 1
nomaxvalue
nocycle
nocache 
-------------执行上面一段----------------
--为test表创建插入触发器
create trigger "GREADE_TRIGGER" BEFORE
INSERT ON TEST FOR EACH ROW WHEN(new.ID IS NULL)
BEGIN
SELECT GRADE_SEQUENCE.NEXTVAL INTO:NEW.ID FROM DUAL;
END;
----------执行上面一段-----------------

insert into TEST(NAME) values('AA');
insert into TEST(NAME) values('BB');
insert into TEST(NAME) values('CC');
insert into TEST(NAME) values('DD');
insert into TEST(NAME) values('EE');

select * from test;

 

1、增加新字段:

alter table table_name; 

   add (name varchar(20) default 'unkown');

如:

alter table test; 

   add(address varchar(100));

2、修改表字段:

alter table table_name;

   modify (name varchar2(30) default 'hebei');

如:

alter table test;  

  modify (address varchar(20) default 'unkown');


3、删除表字段:

alter table table_name;

   drop column column_name;

通常在系统不忙的时候删除不使用的字段,可以先设置字段为

 unused;

如:

alter table test;  

 set unused column address;


4、表重命名:

rename table_name1 to table_name2;

如:

rename test to test2;


5、清空表中的数据:

TRUNCATE TABLE table_name;

如:

truncate table test;


6、给表增加注释:

COMMENT ON TABLE table_name;

如:

comment on table test is 'This is a test table';

 
7、删除表结构:

DROP TABLE table_name;

此操作属DDL,会自动提交且不可回滚;



 

 


 

 

网友评论

登录后评论
0/500
评论
暖枫无敌
+ 关注