oracle创建自增主键过程与错误分析

本文详细介绍了如何使用PL/SQL在Oracle数据库中建立序列触发器的过程,包括建表、创建序列和触发器的方法。同时,文中解决了一些常见的创建过程中遇到的错误提示,并提供了应对策略。最后,通过实例演示了触发器的有效建立,帮助读者理解并实践数据库管理的核心技能。
“sys是Oracle数据库中权限最高的帐号,具有create database的权限,而system没有这个权限,sys的角色是sysdbasystem的角色是sysoper。其余就是他们两个用户共有的权限了:startup/shutdown/dba两个用户都是可以管理的。

平时用system来管理数据库就可以了。这个用户的权限对于普通的数据库管理来说已经足够权限了”


上述一段话使我终于解决了最终的问题,使用plsql登陆上去,建立序列触发器,完成。

简述建立过程

首先建表,主键为number还是varchar都可以,测试过了

建立序列:

----创建序列
create sequence auto_inc
increment by 1 
start with 1
nomaxvalue
nominvalue
nocache
创建触发器:

create or  replace trigger AUTO_INCREASE_ID
before insert on STU
for each row
begin
select auto_inc.nextval into :new.UUID from dual;
end;
上面的uuid是表中的一个列

问题:

如果创建过程中遇到什么“索引中丢失  IN 或 OUT 参数:”等一些列莫名其妙的错误,记得一定要在dos或比较专业的环境下刷sql,远离可视化工具。

如果明明创建好了但是还是报什么“触发器无效且未通过重新验证”,认真检查一下他所说的是哪个schema的触发器,有可能是调用的别的,执行sq时,系统用户的触发器等的优先级要高于当前自定义用户,创建的时候由于各种角色的切换可能会导致建立的触发器或者序列不在同一个用户下,找到后干掉,免得影响当前用户的使用


额,搞了一下午,终于明白了!虽然学了一年oracle看来都还给老师了,还得复习啊!


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值