在网上找了很多自动增长列的资料没看明白...drop table bug;create table bug( seq_id number
pc_id  varchar2 (8),
desc_cont  varchar2 (200), 
bug_date date,  
bug_cont varchar2 (200), 
bug_state  varchar2 (1), 
bug_type  varchar2 (2), 
res   varchar2 (200), 
finishdate date,
pc_type varchar2 (2)
); ALTER TABLE bug ADD (
  CONSTRAINT bug PRIMARY KEY (pc_id)
   );
这是我以前的表..现在我要建立一个seq_id..这是自动增长列...主见也是设seq_id...不知道怎么做...可以的话 能帮忙把sql语句写一下吗?
希望每次添加一条数据.这个自动增长列就加1....

解决方案 »

  1.   

    select seq1.nextval from dual
      

  2.   

    建好SEQ后在添加一条记录去取一次SEQ值或者先取一次SEQ值,再做做为一个列的值一起X一条记录
      

  3.   

    非要实现就得写触发器
    CREATE OR REPLACE TRIGGER WUSER.F150PERIOD_MPR_TRIGGER1
        BEFORE INSERT ON WUSER.F150PERIOD_MPR
        REFERENCING NEW AS NEW
        FOR EACH ROW
    BEGIN
        select SEQ_F150_MPR.nextval into :new.keyid from dual;
        insert into ...
        end;
      

  4.   

    我是楼主现在这个表还没有建自动增长列.不知道怎么去建啊?想让seq_id变成自动增长列怎么做啊..以后每插入一条数据就让这个字段加1
      

  5.   

    先创建一个序列,例如:
    create sequence Sequence_bug
    increment by 1
    start with 1再创建一个触发器,例如:
    create trigger tib_bug before insert
    on bug for each row
    declare
        integrity_error  exception;
        errno            integer;
        errmsg           char(200);
        dummy            integer;
        found            boolean;begin
            select Sequence_bug.NEXTVAL INTO :new.seq_id from dual;
    exception
        when integrity_error then
           raise_application_error(errno, errmsg);
    end;
      

  6.   

    5樓和樓都提出了要用觸發器,這楊可以阿。樓主試一試!
    但是有個問題:你每次往表裏面插數據時,seq_id不就不是你插入的值了麽?況且他是主鍵阿!這樣合理嗎?
      

  7.   

    把楼上的代码复制用了的,,,还是不好用为什么...
    这么添加不对吗?insert into bug (seq_id,pc_id) values (seq_id.NEXTVAL,'1')在建表语句中是不是要把seq_id number声明出来...还必须是number类型是吧
      

  8.   

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[Users](
    [userid] [int] IDENTITY(1,1) NOT NULL,
    [username] [nvarchar](50) NOT NULL,
    [password] [nvarchar](50) NOT NULL,
     CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED 
    (
    [userid] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY]
    怎么自增下个标识符