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

来源:互联网 发布:mp3顺序排列软件 编辑:程序博客网 时间:2024/06/06 01:33
“sys是Oracle数据库中权限最高的帐号,具有create database的权限,而system没有这个权限,sys的角色是sysdbasystem的角色是sysoper。其余就是他们两个用户共有的权限了:startup/shutdown/dba两个用户都是可以管理的。

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


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

简述建立过程

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

建立序列:

----创建序列create sequence auto_incincrement by 1 start with 1nomaxvaluenominvaluenocache
创建触发器:

create or  replace trigger AUTO_INCREASE_IDbefore insert on STUfor each rowbeginselect auto_inc.nextval into :new.UUID from dual;end;
上面的uuid是表中的一个列

问题:

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

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


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


原创粉丝点击