การกำหนด auto number สำหรับ oracle
- เริ่มจากต้องทำการสร้าง sequence ที่ต้องการสำหรับตารางข้อมูลก่อน
create sequence test_tab_seq_id minvalue 1 maxvalue 99999999 increment by 1;
- สร้างตารางข้อมูลและกำหนดให้มีการเรียกใช้ sequence ที่สร้างไว้
create table test_tab (
id integer not null,
name varchar(50),
primary key (id)
);
- สร้าง Trigger สำหรับให้มีการนำตัวเลขใน sequence ไปใช้งาน
create or replace trigger test_tab_insert_id
before insert on test_tab
for each row
when (new.id is null) begin
select test_tab_seq_id.NEXTVAL
into :new.id
from dual;
end;
- ลองทดสอบนำเข้าข้อมูลดู
insert into test_tab (name) values ('nam');
insert into test_tab(name) values ('nam2');
เท่านี้เราก็จะมีคอลัมน์ที่เป็นตัวเลขและตัวเลขจะเพิ่มให้อัตโนมัติเมื่อมีการเพิ่มข้อมูลเข้าไป โดยเราไม่จำเป็นต้องเพิ่มข้อมูลเข้าไปยังคอลัมน์ดังกล่าว ในการทำงานเราอาจจะใช้ sequence เดียวกันก็ได้ ถ้าเรามีการจัดการที่ดิีหรือจะแยกกันเลยก็ได้
ความคิดเห็น
แสดงความคิดเห็น