精华内容
下载资源
问答
  • oracle设置主键自动增长 首先,你要有一张表! 然后,你需要一个自定义的sequence  以上代码完成了一个序列(sequence)的建立过程,名称为emp_sequence,范围是从1开始到无限大(无限大的程度是由你机器决定的),nocycle...
  • Oracle 设置主键自增长

    千次阅读 2017-09-11 14:18:17
    如果想在Oracle数据库里实现数据表主键自增,我们似乎没有办法像MySql般直接定义列的属性来实现。不过对于这个数据库的常用功能,我们还是有办法实现的。这里将展示使用触发器来实现主键自增。 1.准备 创建...

    如果想在Oracle数据库里实现数据表主键自增,我们似乎没有办法像MySql般直接定义列的属性来实现。不过对于这个数据库的常用功能,我们还是有办法实现的。这里将展示使用触发器来实现主键自增。

    1.准备

    创建UserInfo表,结构如下:

    CREATE TABLE UserInfo
    (
      id NUMBER(10) NOT NULL,
      username VARCHAR2(15) NOT NULL,
      password VARCHAR2(15) NOT NULL,
    
      CONSTRAINTS PF_UserInfo PRIMARY KEY(id) --创建主键约束
    );
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    创建一个用于自增的序列(requence)

    CREATE SEQUENCE Tab_UserInfo_Sequence
    START WITH 1
    MINVALUE 1
    MAXVALUE 999999999
    INCREMENT BY 1
    CACHE 20;
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2.触发器

    CREATE OR REPLACE TRIGGER Tig_UserInfo_Insert
    BEFORE INSERT ON UserInfo         --插入动作触发器
    FOR EACH ROW WHEN(new.id IS NULL) --id值为null时触发
    BEGIN
      select Tab_UserInfo_Sequence.nextval into :new.id from dual;   --插入序列值到id值
    END;
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3.测试用例

    INSERT INTO UserInfo(username, password) VALUES('aaa', '111');
    INSERT INTO UserInfo(username, password) VALUES('bbb', '222');
    INSERT INTO UserInfo(username, password) VALUES('ccc', '333');
     
    • 1
    • 2
    • 3

    查看表数据,结果如下: 

    4.END

    至此,使用触发器设置主键自增已完成。

    展开全文
  • Oracle设置主键自增长

    2017-05-08 16:48:00
    由于Oracle不能像SQL Server一样直接设置主键自增长,所以要实现Oracle自增长需要做以下步骤: Step1:创建表USER(任意命名) create table if not exsists USER ( id int PRIMARY KEY, name varchar2(20), ...

    由于Oracle不能像SQL Server一样直接设置主键自增长,所以要实现Oracle自增长需要做以下步骤:

    Step1:创建表USER(任意命名)

    create table if not exsists USER
    (
           id int PRIMARY KEY,
           name varchar2(20),
           username varchar2(20),
           sex varchar2(2),
           age int
    );

    Step2:创建序列SEQ_USER_ID

    create sequence SEQ_USER_ID
        minvalue 1      --最小值
        start with 1     --开始值
        increment by 1     --增长值 
        nocycle       
        nocache; 

    Step3:创建触发器TRIGGER_USER执行序列

    CREATE OR REPLACE TRIGGER TRIGGER_USER
    BEFORE INSERT ON USER FOR EACH ROW WHEN (new.id is null)
    begin
    select SEQ_USER_ID.nextval into:new.id from dual;
    end;

    这三个步骤完成之后,就可以尝试插入数据进行测试:

    insert into USER(name,username,sex,age) values('张三','user1','',25) ;

    执行结果:表中生成一条数据。

     

    转载于:https://www.cnblogs.com/chenzhaoren/p/6825822.html

    展开全文
  • Oracle数据库设置主键自增长详情

    千次阅读 2018-10-24 22:25:25
    1.创建一张操作表 代码创建过程: create table USERTEST ( id NUMBER not null, name VARCHAR2(50), sex VARCHAR2(10) ) alter table USERTEST add constraint 主键 primary key (ID) using index tablespace USERS...

    1.创建一张操作表

    代码创建过程:

    create table USERTEST
    (
      id   NUMBER not null,
      name VARCHAR2(50),
      sex  VARCHAR2(10)
    )
    
    alter table USERTEST
      add constraint 主键 primary key (ID)
      using index 
      tablespace USERS
      pctfree 10
      initrans 2
      maxtrans 255
      storage
      (
        initial 64K
        next 1M
        minextents 1
        maxextents unlimited
      );
    
    

    小熙使用的是:工具PLSQL创建的表(推荐)

    plsq创建表

    2. 设置序列

    代码过程(创建简易默认序列):

    CREATE SEQUENCE sequenceName;   --第三个单词(sequenceName)是序列名称,按需求起名
    

    工具PLSQL创建序列
    创建序列化

    序列化的创建一般默认,只创建名称就好。如有其它需求可再设置,选择看个人喜好。

    3. 设置触发器

    代码过程(注意zizeng是我设置的触发器名称,zhujian是我序列化名称):

    create or replace trigger zizeng
      before insert
      on USERTEST 
      for each row
    declare
      -- local variables here
    begin
      SELECT zhujian.nextval INTO :new.id FROM dual;
    END zizeng;
    

    工具PLSQL创建触发器

    1. 找到触发器(在编辑表里面)
      找到触发器

    点击加号,抒写完触发器名称和触发事件之后,工具会自动生成,对于这张表而言添加触发器的通用代码。

    在这里插入图片描述

    begin和end中间添加序列的代码需要我们自己写:

    SELECT zhujian.nextval INTO :new.id FROM dual;
    

    其实这行代码只有序列名(zhujian)不是固定的,其他都是固定抒写格式。
    至此自增配置完了,可以添加一条数据测试下:

    INSERT INTO usertest(NAME,sex) VALUES('程熙','男');
    

    本次分享至此结束了,如果还有更好的方法或需求可以留言哟。

    展开全文
  • 如果想在Oracle数据库里实现数据表主键自增,我们似乎没有办法像MySql般直接定义列的属性来实现。不过对于这个数据库的常用功能,我们还是有办法实现的。这里将展示使用触发器来实现主键自增。1.准备 创建UserInfo...

    转自:https://yq.aliyun.com/ziliao/258074

    如果想在Oracle数据库里实现数据表主键自增,我们似乎没有办法像MySql般直接定义列的属性来实现。不过对于这个数据库的常用功能,我们还是有办法实现的。这里将展示使用触发器来实现主键自增。 1.准备

    创建UserInfo表,结构如下:

    CREATE TABLE UserInfo ( id NUMBER(10) NOT NULL, username VARCHAR2(15) NOT NULL, password VARCHAR2(15) NOT NULL, CONSTRAINTS PF_UserInfo PRIMARY KEY(id) --创建主键约束 );

    Oracle 设置主键自增长__Oracle

    创建一个用于自增的序列(requence)

    CREATE SEQUENCE Tab_UserInfo_Sequence START WITH 1 MINVALUE 1 MAXVALUE 999999999 INCREMENT BY 1 CACHE 20;

    2.触发器

    CREATE OR REPLACE TRIGGER Tig_UserInfo_Insert BEFORE INSERT ON UserInfo --插入动作触发器 FOR EACH ROW WHEN(new.id IS NULL) --id值为null时触发 BEGIN select Tab_UserInfo_Sequence.nextval into :new.id from dual; --插入序列值到id值 END;

    3.测试用例

    INSERT INTO UserInfo(username, password) VALUES('aaa', '111'); INSERT INTO UserInfo(username, password) VALUES('bbb', '222'); INSERT INTO UserInfo(username, password) VALUES('ccc', '333');

    查看表数据,结果如下: 
    Oracle 设置主键自增长__Oracle4.END

    至此,使用触发器设置主键自增已完成。

    以上是Oracle 设置主键自增长__Oracle的全部内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有Oracle 设置主键自增长__Oracle的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据库 , oracle , 主键 , sql数据库 自增 ,以便于您获取更多的相关知识。

    转载于:https://www.cnblogs.com/sharpest/p/10162294.html

    展开全文
  • 到此这篇关于Navicat Premium中Oracle创建主键自增的方法的文章就介绍到这了,更多相关Navicat Premium主键自增内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!
  • 1、创建表 create table emp( id number, name varchar2(30) ); 2、创建序列 create sequence emp_sequence minvalue 0 maxvalue 999999999999999999 start with 0 increment by 1 cache 20;...cr
  • Oracle数据库设置主键自增长策略

    千次阅读 2019-04-23 16:53:15
    其次为我们SOFTCLASS表的ID添加主键自增长策略: CREATE SEQUENCE SOFTCLASS_sequence INCREMENT BY 1 NOMAXVALUE NOCYCLE CACHE 10; 测试结果: INSERT INTO SOFTCLASS VALUES  ( SOFTCLASS_sequence....
  • oracle设置主键自增长

    千次阅读 2018-08-31 16:48:20
    oracle的主键自增长不像mysql的主键自增长设置那么方便,需要先设置序列,然后在设置触发器。此表的触发器可以复制以前类似触发器,然后对特定名字进行修改。 设置完触发器,不需要再在数据表中做相关设置,因为...
  • Oracle中给主键设置自增长

    千次阅读 2019-09-17 01:32:14
    因为Oracle中12c版本之前的都不能直接给主键设置自增长,所以只能通过序列+触发器来实现自增长。 大致过程:创建序列->创建触发器,并设置在某张表执行insert操作之前触发(让主键自增1【注意只能作用于为int...
  • #创建一个自增的序列 create sequence demo_seq increment by 1 start with 1 nomaxvalue nominvalue nocache; #给表创建触发器 create or replace trigger demo_seq before insert on TEST_USER for each row...
  • oracle设置主键自增(超简单)

    千次阅读 2020-12-02 14:42:53
    不同于mysql,oracle主键自增不能在建表时直接设置,其实也很简单。 1.建表 CREATE TABLE test ( id NUMBER NOT NULL, key1 VARCHAR2(40) NULL, key2 VARCHAR2(40) NULL ); 2.设置主键 alter table test add ...
  • Oracle数据库设置主键自增 一,sql语句创建 oracle数据库与mysql数据库的主键自增设置是不同的。 mysql主键自增很简单,在创建主键的时候在主键字段后增加auto_increment就可以实现自增。 但是oracle相比下多了两步...
  • navicat premium oracle 设置主键自增

    千次阅读 2019-01-09 16:38:58
    navicat premium oracle 设置主键自增 1.创建序列 create sequence seq_lu --seq_lu是序列名 start with 1 —表示从1开始自增 increment by 1 —表示步长为1,如果为2就每次加2 maxvalue 9999 ...
  • 在最近做项目中,SSM框架+Oracle数据库,遇到前台没有传递主键值,需要在插入数据的时候实现主键自增长,因为oracle没有如同SqlServer和mysql一样的主键自增长的设计,所以只能迂回实现,先将我的实现方法记录如下:...
  • PL/SQL 设置主键自增长

    千次阅读 2018-04-12 14:18:00
    假设关键字段为id,建一个序列,代码为: create sequence seq_user_custom minvalue 1 maxvalue 99999999 start with 1 increment by 1 nocache order; 创建触发器代码为: CREATE OR REPLACE TRIGGER trg...
  • oracle数据库中设置逐渐自增策略的方式有两种: 建表: create table stu( sid int primary key, sname varchar(10), sex int ) 1.使用序列实现自增 (1)创建序列 ...
  • 今天小编跟大家分享一点关于oracle数据库的知识,用DDL语句实现主键自增长 第一步:你需要有一张带主键的表~这里叫haha表~工作也要开心!!! 建表语句字段类型长度都是默认长度,我没改,道友们需要多长自行更改...
  • Oracle数据库主键自动增长

    万次阅读 2018-08-30 15:32:25
    1:首先创建一张普通的表 ... id int primary key NOT NULL , //必须要有主键 mydate varchar(45) NOT NULL, height varchar(45) NOT NULL, weight varchar(45) NOT NULL, bmi varchar(45) NOT NULL,...
  • 1、把主键定义为自动增长标识符类型MySql在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值。例如: 代码如下:create table customers(id int auto_increment primary key not null, name...
  • oracle建表设置主键自增

    千次阅读 2019-02-18 09:26:36
    NOMAXVALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 NOCACHE -- 不建缓冲区 你只有了表和序列还不够,还需要一个触发器来执行它!代码如下: create trigger mem_trig before insert on member for ...
  • oracle主键自动增长

    2012-04-26 08:41:45
    oracle数据库中主键属性没有自增长,所以只能自己写程序来实现,用序列与触发器,可以解决这个 问题
  • create sequence AREA_ID minvalue 1 maxvalue 6000 start with 1 increment by 1 nocache order; 创建触发器代码为: CREATE OR REPLACE TRIGGER AREA_ID BEFORE INSERT ON XYJ_PROVINCE_CITY_AREA ...
  • /******* 创建短信主键自增 *************/ create sequence msm_sequence minvalue 1 nomaxvalue start with 1 increment by 1 nocycle nocache; CRE

空空如也

空空如也

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

oracle设置主键自增长