oracle设置主键⾃增,两种⽅式:sql语句和navicat界⾯可视化创建c程序设计心得体会
mysql语句转oracleOracle数据库设置主键⾃增
⼀,sql语句创建
oracle数据库与mysql数据库的主键⾃增设置是不同的。
mysql主键⾃增很简单,在创建主键的时候在主键字段后增加auto_increment就可以实现⾃增。
但是oracle相⽐下多了两步操作:
①创建序列:可以理解成创建⼀个规则—>
我的世界notch的图片大全创建⼀个序列,名称为demo_seq,
值是从1开始,
每次递增1,
最⼤值(MAXVALUE是oracle默认的最⼤值),
当值递增到最⼤值时是否循环(NOCYCLE是不循环),
递增还是是否需要缓存(NOCACHE是不设置缓存)。缓存适合于批量插⼊的数据,就是⼀次性创建好指定数量的主键值,可以提⾼⼀定的插⼊性能,默认值20。
CREATE SEQUENCE demo_seq
START WITH1
INCREMENT BY1
MAXVALUE 9999999999999sqlite 密码
NOCYCLE
CACHE 20;
②创建触发器:触发器是针对于表创建的,⽤于在什么时候触发调⽤已创建好的序列。
创建⼀个触发器,名称为demo_tri,
对于demo_table表每⼀⾏记录的插⼊,
当表的主键demoId为空时(new是关键字,不⽤改动),
开始
查询序列demo_seq的下⼀个值,并赋值给当前表的主键demoId
结束
CREATE TRIGGER demo_tri二进制补码如何转化为原码
before
insert on demo_table for each row when(new.demoId
is null)
begin
select val into:new.demoId from dual;
end;
⼆,使⽤navicat如何创建:
同样分为两个步骤:
①创建序列
1.选择如图位置的序列,点击。
2.输⼊相应的值,最后点击保存,输⼊序列名称,称,此处是:demo_seq
②创建触发器
1.创建触发器,同序列位置的那个列表点击触发器
2.然后点击右侧定义,sql内容如下。⼤意是查询出当前表格对应的序列的下⼀个值val,作为⾃增主键字段的值
new.demoId。
select val into:new.demoId from dual
3.最后点击保存,输⼊触发器名称。
⾄此主键⾃增的sql语句⽅式创建完毕,序列和触发器需要配合使⽤。另外再分享⼏个常⽤sql:1.序列
#查看某个⽤户下所有序列
select*from dba_sequences where sequence_owner='LDYY';
#查看某个序列信息
select*from user_sequences where sequence_name ='demo_seq';
#删除序列
DROP SEQUENCE BDM_SEQ
2.触发器
//查看某个表的触发器
select trigger_name from all_triggers where table_name='demo_tri'
//启⽤和禁⽤
ALTER TRIGGER trigger_name DISABLE;
ALTER TRIGGER trigger_name ENABLE;
数组截取方法//删除触发器
DROP TRIGGER demo_tri
希望可以帮到你~
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论