编辑
2024-04-28
学习记录
00
请注意,本文编写于 340 天前,最后修改于 340 天前,其中某些信息可能已经过时。

目录

介绍
使用UUID
使用oracle序列
第一种就是实体类中定义主键类型
第二种就是直接通过数据库的触发器实现

介绍

oracle 和mysql不同,没有自增主键,需要自己定义主键

使用UUID

可以使用mybatisplus的UUID工具根据自己要求生成主键

mybatisPlus官方文档说明

UUid有个弊端就是太长的话,不利于索引的建立,会影响查询效率

使用oracle序列

使用序列也有两种方式

第一种就是实体类中定义主键类型

比如我之前这篇文章

第二种就是直接通过数据库的触发器实现

sql
CREATE TABLE rec_supplement_record ( ID NUMBER(10) PRIMARY KEY, patient_id VARCHAR2(255) NOT NULL, visit_no VARCHAR2(255) NOT NULL, doc_type VARCHAR2(255) NOT NULL, supplement_send_id NUMBER(10) NOT NULL, supplement_send_name VARCHAR2(255) NOT NULL, supplement_receive_id NUMBER(10), supplement_receive_name VARCHAR2(255), supplement_receive_time Date, supplement_send_reason VARCHAR2(400) ); CREATE SEQUENCE rec_supplement_record_seq START WITH 1 INCREMENT BY 1 MAXVALUE 999999999999999999999999999 NOCYCLE NOCACHE; CREATE OR REPLACE TRIGGER rec_supplement_record_trg BEFORE INSERT ON rec_supplement_record FOR EACH ROW WHEN (NEW.ID IS NULL) BEGIN SELECT rec_supplement_record_seq.NEXTVAL INTO :NEW.ID FROM dual; END;

这样的话,很像mysql的自增主键的形式,每次插入数据时不需要定义主键,即可自动生成

本文作者:Weee

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!