การสร้าง sequence ใน oracle 10g ัมนไม่ได้ง่าย ๆ แบบ drop แล้ว create แต่จะมีโครงสร้างที่ซับซ้อนขึ้นมาเล็กน้อย หรือจะให้ reindex table sequence ใหม่โดยเริ่มจากหมายเลข xxx
เราสามารถจะ query หา sequence ปัจจุบัน ได้จาก ( sequence เดียวกันสามารถใช้ได้หลายตาราง จึงควรใช้วิธีนี้มากกว่า max ของตารางใด ตารางหนึ่ง )
SELECT sequence_name,
last_number,
increment_by,
( last_number ) AS next_value
FROM user_sequences
WHERE sequence_name = 'PP_PROTOTYPE_SEQ';
การลบ ( drop ) sequence
ตัวอย่างจะ drop sequence ชื่อ pp_prototype_seq
-- Drop sequence pp_prototype_seq if it exists
BEGIN EXECUTE IMMEDIATE 'DROP SEQUENCE pp_prototype_seq';
EXCEPTION WHEN OTHERS THEN IF SQLCODE != -2289 THEN -- ORA-02289: sequence does not exist
RAISE;
END IF;
END;
/
จากนั้นจึงจะ create sequence ชื่อ pp_prototype_seq ขั้นมาใหม่ หรือจะ re-index sequence ใหม่ได้ เช่น
-- Create a sequence for the auto-increment ID
CREATE SEQUENCE pp_prototype_seq
START WITH 24
INCREMENT BY 1
NOMAXVALUE
NOCACHE;
จะเริ่มนับ pp_prototype_seq โดยเริ่มจากลำดับที่ 24
About the author