精华内容
下载资源
问答
  • oracle 实现主键自增
    2021-01-28 10:27:07

    -- 创建表

    drop table test;

    create table test(id number(10), name varchar2(10));

    -- 创建对列

    drop sequence seq_id;

    create sequence seq_id minvalue 1 nomaxvalue start with 1 increment by 1 nocycle nocache;

    /*

    minvalue 1     最小值

    nomaxvalue     不设置最大值(由机器决定),或根据表字段的值范围设置 maxvalue

    start with 1   从1开始计数,数值可变

    increment by 1 每次加1,数值可变

    nocycle        一直累加,不循环

    nocache        不建缓冲区,如果建立cache那么系统将自动读取cache值个seq,这样会加快运行速度;

    如果当机或oracle死了,那么下次读取的seq值将不连贯*/

    -- sys 登陆授权

    grant create trigger to scott;

    -- 创建触发器, 注意创建触发器 “end;” 后面必须加一个回车和“/”,才可以执行;

    create or replace trigger test_id_increment

    before insert on test

    for each row

    begin

    select seq_id.nextval into:new.id from dual;

    end;

    /

    -- 测试

    select * from test;

    insert into test(name) values('张三');

    insert into test values(null, '张三');

    select * from test;

    更多相关内容
  • 到此这篇关于Navicat Premium中Oracle创建主键自增的方法的文章就介绍到这了,更多相关Navicat Premium主键自增内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!
  • Oracle实现主键自增

    2021-05-04 05:12:25
    --建表MSHOW_ SYSUSER_INFOcreate table MSHOW_ SYSUSER_INFO(ID int primary key,ROLE_IDint not null,LOGIN_NAME varchar2(50) not null,USER_NAMEvarchar2(20),USER_PHONEvarchar2(20),USER_DEPARTMENTvarchar2.....

    --建表MSHOW_ SYSUSER_INFO

    create table MSHOW_ SYSUSER_INFO

    (

    ID int primary key,

    ROLE_ID int not null,

    LOGIN_NAME varchar2(50) not null,

    USER_NAME varchar2(20),

    USER_PHONE varchar2(20),

    USER_DEPARTMENT varchar2(50),

    USER_ADDR varchar2(200),

    PASSWORD varchar2(50),

    CREATE_DATE date,

    UPDATE_DATE date,

    STATUS int,

    RMK varchar2(100)

    )

    --创建序列MSHOW_ SYSUSER_INFO_SEQ

    CREATE SEQUENCE MSHOW_ SYSUSER_INFO_SEQ

    INCREMENT BY 1

    START WITH 1

    NOMAXVALUE

    NOCACHE

    NOCYCLE;

    --创建触发器tri_MSHOW_ SYSUSER_INFO

    create or replace trigger tri_MSHOW_ SYSUSER_INFO          before insert on MSHOW_ SYSUSER_INFO          for each row   declare          myid number;   begin          if         :new.ID is null or :new.ID='' or :new.ID=0 then          select MSHOW_ SYSUSER_INFO_SEQ.nextval into myid from dual;                    :new.ID:=myid;                    end if;   end tri_MSHOW_ SYSUSER_INFO;

    展开全文
  • Oracle 实现主键自增

    2020-12-14 09:16:37
    公司现在项目数据库使用oracleoracle实现主键自增比mysql麻烦 mysql 在表主键auto_increment 打钩即可。oracle没有改属性,就相对麻烦。特此记录一下自增方法 测试案例如下 第一步创建一张测试表table1 sql语句...

    公司现在项目数据库使用oracle,oracle实现表主键自增比mysql麻烦
    mysql 在表主键auto_increment 打钩即可。oracle没有改属性,就相对麻烦。特此记录一下自增方法

    测试案例如下

    第一步创建一张测试表table1

    sql语句

    create table table1
    (
    id int not null,
    name varchar2(20),
    sex varchar2(4)
    )
    

    添加表注释、字段注释

    comment on table table1 is '测试表 稍后会删除'
    comment on column table1.name is '姓名'
    comment on column table1.sex is '性别'
    

    第二步:创建序列

    create sequence table1_id
    minvalue 1             //自增字段最小值
    nomaxvalue           //最大值 没有就算nomaxvalue
    increment by 1      //每次增值1
    start with 1           //起始值
    nocache;             //不缓存
    

    第三步:创建触发器

    create or replace trigger table1_tg_insertId
    before insert on table1 for each row
    begin
    select table1_id.nextval into:new.id from dual;
    end;
    

    第四步:测试开始 插入两条数据

    insert into table1(name,sex) values ('zhangsan','nan');
    insert into table1(name,sex) values ('lisi','nan');
    

    完整版

    
    create table t_test(
    	id int not null,
    	name varchar2(20),
    	sex varchar2(4)
    	)
    comment on table t_test is '测试表 稍后会删除'
    comment on column t_test.name is '姓名'
    comment on column t_test.sex is '性别'
             
    create sequence t_test_id
    minvalue 1          --自增字段最小值
    nomaxvalue          --最大值 没有就算nomaxvalue
    increment by 1      --每次增值1
    start with 1        --起始值
    nocache;            --不缓存
    
    create or replace trigger t_test_tg_insertId
    		before insert on t_test for each row
    	begin
    		select t_test_id.nextval into:new.id from dual;
    	end;
    
    insert into t_test(name,sex) values ('杜甫','nan');
    
    SELECT * from t_test
    
    

    实现分页

    
    SELECT * FROM(SELECT ID,NAME,row_number() over(ORDER BY id asc) rn FROM "t_user")WHERE rn <=3
    
    SELECT * from (SELECT ID,NAME, row_number() over(ORDER BY id asc) rn FROM "t_user") where rn >40 AND rn <=50
    
    select a.* from ( select * FROM "t_user"  where id <= 50 ) a where a.id >= 40;
    
    展开全文
  • oracle实现主键自增

    2019-09-09 18:42:03
    oracle实现主键自增 前言:oracle不像mysql一样,支持主键自增oracle需要序列(sequence)来间接实现主键自增。 创建表:(例如创建用户表) create table t_user( id number(10) not null, //主键id username ...

    oracle实现主键自增

    前言:oracle不像mysql一样,支持主键自增。oracle需要序列(sequence)来间接实现主键自增。

    创建表:(例如创建用户表)
    create table t_user(
    id number(10) not null, //主键id
    username varchar2(40) not null, //用户名
    password varchar2(40) not null, //密码
    primary key(id), //标记主键是哪个
    foreign key(role_id) references t_role(role_id) //设置外键role_id,关联表t_role
    );

    创建序列:(例如用户序列)
    create sequence seq_user //序列名为seq_user
    start with 1 //以该值开始自增或自减
    increment by 1 //每次自增1
    maxvalue //最大值;设置NOMAXVALUE表示无最大值
    minvalue //最小值;设置NOMINVALUE表示无最小值
    CYCLE or NOCYCLE //设置到最大值后是否循环;
    cache 20 //指定可以缓存 20 个值在内存里;如果设置不缓存序列,则写NOCACHE
    order or noorder //设置是否按照请求的顺序产生序列

    创建触发器:(例如用户触发器)
    create trigger trigger_user //出发器名trigger_user
    before insert on t_user for each row when (new.id is null) --只有在id为空时,启动该触发器生成id号
    begin
    select seq_user.nextval into:new.id from dual;
    end;

    展开全文
  • 一、创建序列 1.1、直接在PLSQL中设置 1.2、命令创建 create sequence seq_users ##创建序列seq_users increment by 1 ## 步长,每次加1 start with 1 ##从1开始 minvalue 1 ##最小值 maxvalue 9999999 ##最大值 ...
  • 数据库作为一个系统的核心,数据库设计的1NF就是一个表结构必须有唯一约束也就是主键Oracle数据库本身没有自增机制,不像MySQL直接使用关键字AUTO_INCREMENT自动加一,所以需要我们去自己来实现,下面有几种实现的...
  • oracle在创建表的时候不能像mysql那样可以直接选择自增,但是在oracle中我们可以通过给表结构添加序列和触发器,去实现主键自增。 这是PolarDB数据库,但是和Oracle的用法还是很像。 这是本人新建的表结构,id为主键...
  • 上周周一,本来刚过完周末,高高兴兴...第一步当然是先配置数据库、oracle建表,这个解决调试了一上午,然后下午卡到oracle主键了,所有人网上找方法,一直到第二天凌晨3点半都还没解决,网上方法很多,试了好多都不...
  • 主键自增在插入数据的时候是很实用的,可以获取并操作返回的插入记录的ID,接下来介绍Oracle如何创建主键自增表,感兴趣的你可以了解下,就当是巩固知识,希望此文对你有所帮助
  • 本篇文章小编给大家分享一下Springboot+MybatisPlus+Oracle实现主键自增代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。application.yml配置# Mybatis...
  • oracle设置主键自增的方法,可以图形化界面也可以用sql语句,两种方法均亲自验证过。
  • 第一步当然是先配置数据库、oracle建表,这个解决调试了一上午,然后下午卡到oracle主键了,所有人网上找方法,一直到第二天凌晨3点半都还没解决,网上方法很多,试了好多都不管用,终于第二天才找到了满足的方法。...
  • oracle主键自增

    2014-05-23 14:39:04
    oracle 数据库主键自增脚本 --第一步,创建表 --第二步,创建自增序列 --第三步,创建触发器
  • 在设计数据库表的时候发现Oracle没有自增主键的设置,Google了解到Oracle本身并不支持自增主键,需要通过序列(Sequence)和触发器(Trigger)实现。 创建表Student Create Table Student( id number(12) primary ...
  • Oracle 触发器实现主键自增,正上班搬砖呢,我这亲爱的强哥说是创建一个主键自增1的触发器,然后就。。。。。。
  • Oracle定义主键自增

    2022-04-14 09:56:52
    Oracle数据库在进行insert操作的时候 是不会自己进行主键自增的,这是和Mysql不一样的地方。需要通过触发器和序列来完成主键自增的。 1、创建序列 WJSC_id_increment -- 是序列名称 可以自定义 CREATE SEQUENCE ...
  • Oracle设置主键自增

    2022-04-19 19:51:46
    1、如果没有表需要在创建表的时候创建主键 CREATE TABLE Demo 2 ( 3 id INT NOT NULL PRIMARY KEY, 4 key1 VARCHAR2(40) NULL, 5 key2 VARCHAR2(40) NULL ...3、创建序列,实现主键自增 CREATE
  • Oracle数据库主键自增

    2020-12-23 06:52:40
    Oracle数据库主键自增在学习mysql时,我们很容易通过auto_increment就能实现主键自增的功能,但是在Oracle数据库中,是没有这个关键字的,所以也不能通过这样来实现主键自增。下面我就为大家介绍两种实现主键自增的...
  • -- 第一步 建表 CREATE TABLE "BOOK" ( "ID" NUMBER(*,0) NOT NULL ENABLE, "NAME" VARCHAR2(255), "PRICE" VARCHAR2(10), "STATUS" VARCHAR2(10), "CREDATE_TIME" DATE, ... 这样就可以使用SEQ实现自增了。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,977
精华内容 11,590
关键字:

oracle实现主键自增

友情链接: SecureCRT.zip