การกำหนด auto number สำหรับ oracle

ในการสร้างตารางข้อมูลในแต่ละฐานข้อมูลจะมีการกำหนดรายละเอียดของบางคอลัมน์ให้เป็นตัวเลขแบบให้ระบบกำหนดให้เพิ่มเองอัตโนมัติ ในส่วนของ 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 เดียวกันก็ได้ ถ้าเรามีการจัดการที่ดิีหรือจะแยกกันเลยก็ได้

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

PostgreSQL Partitioning

กรณีที่ไม่สามารถ start service ของ PostgreSQL ได้ (ใน windows)

การจัดการ Log ของ Apache Web Server