<tip id='958' />

Tạo trường tự tăng trong Database Oracle

Trong SqlServer, ta dễ dàng tạo được trường tự tăng bằng cách đặt thuộc tính identity cho column. Nhưng trong oracle thì không hỗ trợ. Để thực hiện được trước tiên ta tạo một sequence:

create sequence test_seq 
start with 1 
increment by 1 
nomaxvalue; 

Giả sử ta có bảng như sau:

create table test (id number, testdata varchar2(255));

Khi insert dữ liệu vào thì thực hiện như sau:

insert into test(id, testdata) values(test_seq.nextval, 'tek');

Để thực hiện insert ngầm định giá trị của test_seq vào id mà không cần chỉ định tường minh như ở trên, ta sử dụng trigger:

create trigger test_trigger
before insert on test
for each row
begin
	select test_seq.nextval into :new.id from dual;
end;

Khi đó khi insert dữ liệu ta chỉ cần viết như sau:

insert into test(testdata) values('tek');
Khi trích dẫn bài viết từ tek.eten.vn, xin vui lòng ghi rõ nguồn. Chúng tôi sẽ rất cảm ơn bạn!