Oracle数据库设置自增主键

您所在的位置:网站首页 mybatis能连接oracle吗 Oracle数据库设置自增主键

Oracle数据库设置自增主键

2023-06-01 23:02| 来源: 网络整理| 查看: 265

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比较费劲,所以建表的时候,就应该用大写:这样不加双引号,也能够查出来数据 在这里插入图片描述 建表的时候字段名不加双引号,也能正常使用mybatis查询



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3