Oracle数据库设置自增主键 |
您所在的位置:网站首页 › mybatis能连接oracle吗 › Oracle数据库设置自增主键 |
oracle不等同于Mysql,直接使用navicat勾选自动递增,需要增加序列,然后生成触发器 1.创建序列 create sequence ROUCE_AUTO --创建的序列名ROUCE_AUTO是序列名 increment by 1 --自增1 start with 1 --从1开始 nomaxvalue --不限制最大值 nocache; --不使用缓存2.使用 create or replace trigger insert_ums_role_menu_autoinc --创建触发器,insert_ums_role_menu_autoinc是自定义的名字 before insert on ums_role_menu_relation -- 在哪个表使用ums_role_menu_relation 是表名 for each row declare nextid number; begin IF :new.ID IS NULL or :new.ID=0 THEN --此处的id是主键,序列使用到这个字段上 select ROUCE_AUTO.nextval --ROUCE_AUTO是刚才创建的序列 into nextid from sys.dual; :new.ID:=nextid; --把序列的自增值,赋值给ID end if; end insert_ums_role_menu_autoinc ;自增到此结束 查询序列下一个生成的序号是什么: select ROUCE_AUTO.nextval from sys.dual;oracle的不同于mysql的地方 oracle表和字段是有大小写的区别。oracle默认是大写,如果我们用双引号括起来的就区分大小写,如果没有,系统会自动转成大写: 也就是说创建表的时候,如果建表语句中的字段用"" 双引号括起来的,那么navicat给创建表的时候,就会识别出小写,这样使用mybatis连接数据库使用时,就会报错,提示表不存在 例:select id,name from user; 这样写就会报错: 正确的写法是:select ‘id’,‘name’ from “user”; 但是这样写sql比较费劲,所以建表的时候,就应该用大写:这样不加双引号,也能够查出来数据 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |