请问toad怎么设置主键id为自增长?

 我来答
匿名用户
2016-11-09
展开全部
toad不熟,不过oracle是没有像SQLSERVER那样能给ID设置自动增长的,要通过以下方式:
1. 创建序列号(SEQUENCE)
CREATE SEQUENCE tab_id_s
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXvalue -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10 --设置缓存cache个序列,如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为---------NOCACHE
;
2. 创建表, ID为要设置自动增长的列
CREATE TABLE tab(ID NUMBER,val VARCHAR2(20));
3. 创建触发器,在插入数据时自动设置ID
CREATE OR REPLACE TRIGGER tab_id_tri
BEFORE INSERT on tab -- tab 是表名
FOR EACH row
declare
next_id number;
begin
IF :new.id IS NULL OR :new.Id=0 THEN --Id是列名
select tab_id_s.nextval --tab_id_s是刚才创建的
into next_id
from sys.dual;
:new.id:=next_id;
END IF;
end tab_id_tri;
4. 以下为测试和查询用SQL
INSERT INTO tab(val) VALUES ('haha');
INSERT INTO tab(val) VALUES ('haha2');
SELECT * FROM tab;
追问
不用直接复制给我,这个我看到了,我想问toad,哎,谢谢你哦
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式