zoukankan      html  css  js  c++  java
  • Oracle和SQLSERVER实现主键自动增长

    一:Oracle中实现主键的默认自增长
      很多时候在做和数据库相关的操作的时候,主键不能由用户去填写或涉及多个用户同时操作一张表的时候,就需要对主键进行严格的控制,这里主要讲Oracle中如何实现主键的自增长。  www.2cto.com  
     
           主要由三步组成,1)建表;2)建立序列;3)建立触发器(目的是在表插入数据的时候启用序列生成的值),我们通过下面的例子来说明:
     
            1)建立对应的数据库表:
            drop table TEST;
            create table TEST
            (
               bsm         NUMBER(10) not null,
               xh          NUMBER(10),
               posx        NUMBER(15,5),
               posy        NUMBER(15,5)
             );
           alter table TEST add constraint PK_TEST primary key (BSM);
            2)建立序列
          drop sequence TEST_SEQ;
           create sequence TEST_SEQ
           minvalue 1
           maxvalue 999999999999999999
           start with 1
           increment by 1
           cache 20;
    注:建立序列,最小值为1,从1开始计数和每次递增量为1;
            3)建立触发器  www.2cto.com  
           drop trigger test_trig;
           CREATE OR REPLACE TRIGGER "test_trig"
           BEFORE INSERT ON test
           REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW
           DECLARE
           BEGIN
               SELECT TEST_SEQ.NEXTVAL INTO :NEW.BSM FROM DUAL;
           END test_trig;
    通过上述三步就完成了主键自动生成的设定,以后就可以根据业务需求直接插入业务数据就可以了
     
    二:SQLSERVER中实现主键的默认自增长:
    通过 IDENTITY 来设置,参数有2个,一个是“初始值” 一个是“增量”。
    默认情况下 INSERT 语句中,不能对 IDENTITY 的字段进行赋值。
    CREATE TABLE test_create_tab2 (
    id INT IDENTITY(1, 1) PRIMARY KEY,
    val VARCHAR(10));

  • 相关阅读:
    怎么用javascript进行拖拽[zt]
    FireFox不支持disableoutputescaping(zt)
    xslt中的Javascript取得xml中的参数
    因为查询无法同时更新聚集键和 text、ntext 或 image 列
    FireFox下操作IFrame
    xslt中formatnumber()
    linuxgrepregular expression(regex)
    pl/sqlescape& quotation
    linuxsed command
    linuxfind command(transferred)
  • 原文地址:https://www.cnblogs.com/haoshuai1950/p/5229298.html
Copyright © 2011-2022 走看看