Chinaunix首页 | 论坛 | 博客
  • 博客访问: 745917
  • 博文数量: 96
  • 博客积分: 2023
  • 博客等级: 上尉
  • 技术积分: 1738
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-15 10:03
文章分类

全部博文(96)

文章存档

2014年(11)

2012年(85)

分类: Oracle

2012-05-07 09:46:39

  oracle没有设置主键auto increment的功能,需要自己编写序列和触发器实现主键自动递增。
示例:
创建表menu:

点击(此处)折叠或打开

  1. create table menu( menuId number(10) not null primary key,
  2.                                    name varchar2(40) not null,
  3.                                   id_parent number(10) not null,
  4.                                   url varchar2(300) null);
创建序列menu_autoinc_seq:

点击(此处)折叠或打开

  1. create sequence menu_autoinc_seq
  2.                                        minvalue 1
  3.                                     maxvalue 99999999
  4.                                      start with 1
  5.                                   increment by 1
  6.                                        nocycle
  7.                                        nocache
  8.                                        order;
创建触发器menu_autoinc_tg:

点击(此处)折叠或打开

  1. create or replace trigger menu_autoinc_tg
  2. before insert on menu for each row
  3. begin
  4. select menu_autoinc_seq.nextval into :new.menuId from dual;
  5. end menu_autoinc_tg;
其中end语句可以写成end;或者是如上代码。
在Command Window进行创建数据库对象的时候,如果使用到了多行语句,可在结束后另起一行输入/

测试:

点击(此处)折叠或打开

  1. insert into menu values('','个人事务',0,'indi.php');
  2. insert into menu values('','公共事务',0,'public.php');
或者是

点击(此处)折叠或打开

  1. insert into menu(name, id_parent, url) values('个人事务',0,'indi.php');

  2. insert into menu(name, id_parent, url) values('公共事务',0,'public.php');


阅读(20016) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

ArliceDOTlice2012-05-09 12:54:34

☆彼岸★花开: oracle怎么实现id自增和设置主键啊 ???.....
设置主键的话,有primary key关键字;自增没有直接设置的方法,可以采用创建序列和触发器的方式。

☆彼岸★花开2012-05-08 19:29:02

oracle怎么实现id自增和设置主键啊 ???