在网上找了很多自动增长列的资料没看明白...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....
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....
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;
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;
但是有個問題:你每次往表裏面插數據時,seq_id不就不是你插入的值了麽?況且他是主鍵阿!這樣合理嗎?
这么添加不对吗?insert into bug (seq_id,pc_id) values (seq_id.NEXTVAL,'1')在建表语句中是不是要把seq_id number声明出来...还必须是number类型是吧
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]
怎么自增下个标识符