精华内容
下载资源
问答
  • 在oracle数据库中设置逐渐自增策略的方式有两种: 建表: create table stu( sid int primary key, sname varchar(10), sex int ) 1.使用序列实现自增 (1)创建序列 ...

    在oracle数据库中设置逐渐自增策略的方式有两种:

    建表:

    create table stu(

    sid int primary key,

    sname varchar(10),

    sex int

    )

     

    1.使用序列实现自增

    (1)创建序列

    create sequence SEQ_Userinf

    minvalue 1 --最小值

    nomaxvalue --不设置最大值

    start with 1 --从1开始计数

    increment by 1 --每次加1个

    nocycle --一直累加,不循环

    nocache; --不建缓冲区

     

    (2)插入数据

    insert into test values (sid_sequence.nextval,'张三丰',1);   --实现自增

    2.创建触发器实现自增

    (1)创建触发器

    create or replace trigger stu_sid_trigger 
    before insert on stu for each row
    begin 
    select sid_sequence.nextval into:new.sid from dual; 
    end; 

    before insert on stu /*触发条件:当向表stu执行插入操作时触发此触发器*/

    for each row /*对每一行都检测是否触发*/

    begin /*触发器开始*/

    select sid_sequence.nextval into :new.sid from dual; /*触发器主题内容,即触发后执行的动作,在此是取得序列sid_sequence的下一个值插入到表 stu中的sid字段中*/

    end;

    (2)插入数据

    insert into stu(sname,sex) values('王五',1)

    参考网站:

    https://www.cnblogs.com/sharpest/p/10160370.html 

    展开全文
  • 在添加或变更表结构时,把id字段设置为整型,下面的选项就会出现“自动递增”autoincrement的选择框,勾选就可以了。 int类型 有时候我们不需要id自增 char类型 ...

    在添加或变更表结构时,把id字段设置为整型,下面的选项就会出现“自动递增”auto increment的选择框,勾选中就可以了。

    int类型

     

     

    有时候我们不需要id自增

     char类型

     

    展开全文
  • oracle没有自增字段,可通过序列+触发器间接实现,cmdsqlplus登录,直接运行即可。一般要经过一下几步: 1建立数据表 create table Test_Increase(  userid number(10) primary key, /*主键,...

    oracle中没有自增字段,可通过序列+触发器间接实现,cmd中sqlplus登录,直接运行即可。一般要经过一下几步:

    1建立数据表


    create table Test_Increase(
               userid 
    number(10primary key,  /*主键,自动增加*/
               username 
    varchar2(20)
               );

     

    2创建自动增长序列

     CREATE SEQUENCE TestIncrease_Sequence
     INCREMENT 
    BY 1   -- 每次加几个  
         START WITH 1     -- 从1开始计数  
         NOMAXVALUE       -- 不设置最大值  
         NOCYCLE          -- 一直累加,不循环  
         CACHE 10

     

    3创建触发器

    CREATE TRIGGER Test_Increase BEFORE
    insert ON  Test_Increase FOR EACH ROW
    begin
    select TestIncrease_Sequence.nextval into:New.userid from dual;

    end;

     

    4 提交

    commit;

    5 测试

    反复执行如下语句:

    insert into Test_Increase(Username) values('test')

     

    6 查看插入结果:

    userid username

     1       test
     2       test
     3       test
     4       test
     5       test
     6       test
     7       test
     8       test
     9       test

    展开全文
  • 数据库中实现主键自动增长有利于我们做数据插入操作,在SQL SERVER上创建表时可以在int类型的字段后加上identity(1,1),该字段就会从1开始,按照+1的方式自增,将这个字段设置主键。MySql中可以使用“auto_...

    

           在数据库中实现主键自动增长有利于我们做数据插入操作,在SQL SERVER上创建表时可以在int类型的字段后加上identity(1,1),该字段就会从1开始,按照+1的方式自增,将这个字段设置为主键。MySql中可以使用“auto_increment”即可。而oralce实现该效果需要使用序列配合触发器使用。

     

          下面是一个具体实例:

     

          1.创建数据库表:

    create table employee
    (
      EID      INTEGER,
      NAME     varchar2(10),
      SURNAME  varchar2(10),
      GENDER   varchar2(10),
      STATE    varchar2(10),
      BIRTHDAY date,
      HIREDATE date,
      DEPT     varchar2(10),
      SQLARY   INTEGER
    )
    ;

          2.创建序列:

    create sequence EID_AUTOINC
    minvalue 1
    maxvalue 9999
    start with 57
    increment by 1
    nocache;

          3.创建触发器:

    CREATE OR REPLACE TRIGGER employee_EID --触发器名称
      BEFORE INSERT ON employee    --EMPLOYEE是表名
      FOR EACH ROW
    DECLARE
       NEXTID NUMBER;
    BEGIN
      IF :NEW.EID IS NULL OR :NEW.EID=0 THEN --EID是列名
        SELECT EID_AUTOINC.nextval --EID_AUTOINC是刚才创建的序列
        INTO NEXTID
        FROM DUAL;
         :NEW.EID:=NEXTID;
      END IF;
    END employee_EID;

          4.插入数据测试:

    insert into employee
      ( name, surname, gender, state, birthday, hiredate, dept, sqlary)
    values
      ( 'm', 'f', 'f', 'QQHE', to_date('1986-08-01','yyyy-mm-dd'), to_date('2010/08/24','yyyy-mm-dd'), 'C-center', '3500');

          5.查询验证:

    select * from employee

     

     

     

     

     

     

     

     

     

    转载于:https://www.cnblogs.com/shiGuangShiYi/p/10117563.html

    展开全文
  • 表已有数据,truncate 之后再设置 auto_increment 可行 将表 tf_user 的主键自增起始值为 2 truncate table `tf_user`; alter table tf_user AUTO_INCREMENT=2; 表已有数据,delete from 之后...truncate 删除表的数
  • 如何设置多个主键
  • 主键设置方法有3种: ...如何选择主键设置方式: 1.主键的使用目的: a.为了保证数据查找唯一; b.提高存储效率和索引效率。 2.使用自增主键的场景:  a:表找不出3个以内字段可以表示的业务主键 ...
  • 其中实现主键自增时两者就完全不同,有细心的朋友就会发现在Oracle数据库中我们使用AUTO_INCREMENT会报错,那么,我们就应该接触到另外一个知识,序列。 一.序列 1.序列定义 序列(SEQUENCE)是序列号生成器,可以为表...
  • mybatis框架要实现mysql数据库主键返回只需要在mybatis的mapper映射文件进行设置即可 ###################################################################################################################...
  • Mnesia是erlang/otp自带的分布式数据库管理系统。mnesia配合erlang的实现近乎理想,但在实际使用当中差强人意,总会有一些不足。...参照SQLite的做法,就是在数据库中单独建立一个的sqlite_sequence表来做其他表的自...
  • 1、创建数据库 create table USERINFO ( USERNO NUMBER not null, USERNAME NVARCHAR2(20), USERPWD NVARCHAR2(20) ) 2、创建触发器 create sequence SEQ_Userinf start with 1 increment by 1 nomaxvalue no...
  • mnesia数据表没有主键自增的功能,但在mnesia函数有一个自增函数可以用来生成自增的id,在后面的内容将讲述如何实现主键自增Mnesia是erlang/otp自带的分布式数据库管理系统。mnesia配合erlang的实现近乎理想,但在...
  • 含义:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性。--> <!--keyProperty="autoId" 把主键值赋值给TLivePressOriginDO实体的autoId属性--...
  • 1,为当前已有的表添加新的字段 ...2,为当前已有的表的字段设置主键自增 alter table student add constraint PK_studentId primaryKey(studentId); 3,为当前已有的表的字段设置为外键 alter...
  • CoreData没有主键或外键的概念。 如果要在两个实体之间建立关系。您将定义一个关系,CoreData会处理该关系的存储方式。 选择一个实体,使用实体属性列表底部的加号按钮,选择添加关系,然后从下拉列表选择目标...
  • mybatis如何取得数据库自增主键 在实现数据库操作接口的xml文件的insert标签下,使用useGeneratedKeys和keyProperty。 useGeneratedKeys:默认情况下是false,如果要实现取得数据库自增主键,就需要将其值修改为true...
  • MySQL如何设置自增主键

    万次阅读 2019-05-21 21:59:40
    在初次使用MySQL数据库的时候,或者习惯了使用Oracle数据库(无自增主键),许多小伙伴不知道该如何给MySQL数据库中的相应表中的字段设置自增主键,这里给大家分享一下解决方案: 第一种情况:在创建表的时候使用...
  • 数据库如何设置自增字段

    千次阅读 热门讨论 2015-04-02 20:13:58
    主键ID的值应该是自动增长的,可能视频设计数据库的时候没有认真听,就出现这样的错误。  那到底如何设置自增字段呢? (1)将字段的数值类型设置为int(只有是整型的时候才可以自动增值) (2)将...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 408
精华内容 163
关键字:

数据库中如何设置主键