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

请问toad怎么设置主键id为自增长?,第1张

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

比如你现在有个表叫student

alter

table

student

add

constraint

pk_student

primary('stuid')

//其中pk_student是可以自己定义的,就是约束的名字

//stuid是主键名字


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11814104.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存