วิธีรีเซ็ตลำดับใน PostgreSQL

Withi Riset Ladab Ni Postgresql



การใช้ลำดับ PostgreSQL เป็นวิธีที่มีประสิทธิภาพในการทำงานกับค่าที่เพิ่มขึ้นอัตโนมัติ โดยเฉพาะอย่างยิ่งสำหรับคีย์หลัก เมื่อไม่ได้กำหนดค่าเริ่มต้น การเพิ่มอัตโนมัติสำหรับ INT จะเริ่มต้นที่ 0 อย่างไรก็ตาม คุณสามารถระบุค่าเริ่มต้นที่จะใช้สำหรับลำดับได้ในคอลัมน์การเพิ่มอัตโนมัติของคุณ

นอกจากนี้ หากคุณพบสถานการณ์ที่จำเป็นต้องเปลี่ยนค่าถัดไปในลำดับ คุณสามารถรีเซ็ตลำดับได้อย่างรวดเร็วและระบุค่าที่จะเริ่มต้นด้วยสำหรับรายการถัดไปในตาราง รายละเอียดทั้งหมดที่คุณควรรู้เกี่ยวกับวิธีรีเซ็ตลำดับใน PostgreSQL มีรายละเอียดอยู่ในโพสต์นี้ ลองดูสิ!

ตัวอย่างเกี่ยวกับวิธีการรีเซ็ตลำดับใน PostgreSQL

ด้วยคอลัมน์ INT คุณสามารถสร้างลำดับการเพิ่มอัตโนมัติและใช้เป็นคีย์หลักสำหรับตารางของคุณได้ ด้วยวิธีนี้ คุณไม่จำเป็นต้องป้อนค่าเมื่อเรียกใช้แบบสอบถาม INSERT เนื่องจากค่าจำนวนเต็มจะถูกสร้างขึ้นโดยอัตโนมัติ เมื่อสร้างลำดับแล้ว คำสั่ง ALTER SEQUENCE จะช่วยให้คุณรีสตาร์ทลำดับและระบุค่าเริ่มต้นใหม่สำหรับรายการใหม่







สำหรับตัวอย่างนี้ เราจะทำงานกับตาราง “user_details” ต่อไปนี้ สิ่งที่เรามุ่งเน้นคือคอลัมน์ “user_id” ซึ่งเป็นลำดับการเพิ่มอัตโนมัติเริ่มต้นที่ 100





หากต้องการแสดงรายการลำดับต่างๆ ในฐานข้อมูลของคุณ ให้รันคำสั่งต่อไปนี้:





\ds

ในกรณีของเรา เรากำหนดเป้าหมายลำดับ 'user_id'



หากต้องการดูรายละเอียดเพิ่มเติมเกี่ยวกับลำดับ ให้เรียกใช้แบบสอบถาม 'select' ดังที่แสดงไว้ต่อไปนี้:

SELECT * จากลำดับ_ชื่อ;

เราจะเห็นว่าค่าสุดท้ายในลำดับที่มีอยู่คือ 104 เรารีเซ็ตค่านี้และกำหนดค่าใหม่ที่รายการใหม่จะมี

หากต้องการรีเซ็ตลำดับ PostgreSQL ให้ใช้คำสั่งต่อไปนี้:

แก้ไขลำดับลำดับ sequence_name รีสตาร์ทด้วยค่า;

สำหรับกรณีของเรา สมมติว่าเราต้องการรีสตาร์ทลำดับและเริ่มรายการใหม่ที่ 20 หลังจากรันคำสั่งต่อไปนี้ เราจะได้ผลลัพธ์ ดังที่แสดงในตัวอย่างต่อไปนี้ ซึ่งยืนยันว่าลำดับได้รับการแก้ไขแล้ว

หากเรารันคำสั่งก่อนหน้าอีกครั้งเพื่อดูรายละเอียดลำดับของเราโดยใช้คำสั่ง SELECT เราจะเห็นว่า “last_value” ใหม่สำหรับกรณีนี้คือค่าที่เราระบุด้วยคำสั่ง ALTER

มาแทรกรายการใหม่ลงในตารางของเราเพื่อดูว่าเกิดอะไรขึ้น รูปภาพต่อไปนี้แสดงแบบสอบถาม INSERT และผลลัพธ์ที่เราได้รับหลังจากรันคำสั่ง SELECT สังเกตว่ารายการใหม่ตั้งค่า 'user_id' เป็น 20 รายการใหม่ทั้งหมดที่เราทำจะมี 'user_id' สร้างขึ้นตามค่าสุดท้ายคือ 20

หากเราป้อนข้อมูลอื่น “user_id” ของมันจะเป็น 21 และลำดับจะดำเนินการโดยใช้ตรรกะเดียวกัน นั่นคือวิธีที่คุณรีเซ็ตลำดับใน PostgreSQL โปรดทราบว่าคำสั่ง 'รีเซ็ต' จะไม่ส่งผลต่อบันทึกที่มีอยู่ โดยจะกำหนดเฉพาะค่าเริ่มต้นใหม่สำหรับรายการที่คุณสร้างหลังจากรีเซ็ตลำดับแล้ว

บทสรุป

ด้วย PostgreSQL การมีวิธีสร้างค่าจำนวนเต็มในคอลัมน์คีย์หลักโดยอัตโนมัติจะทำให้สิ่งต่างๆ ง่ายขึ้น เมื่อคุณมีลำดับที่มีอยู่แล้ว คุณสามารถใช้ ALTER SEQUENCE ได้
คำสั่งพร้อมตัวเลือก RESTART WITH เพื่อระบุลำดับที่คุณต้องการรีเซ็ตและค่าใดที่จะตั้งเป็นค่าสุดท้ายในลำดับ ด้วยวิธีนี้ รายการใหม่จะสร้างค่าจำนวนเต็มตามค่าสุดท้ายใหม่ ดูตัวอย่างที่นำเสนอเพื่อทำความเข้าใจวิธีการทำงานของการรีเซ็ตลำดับ PostgreSQL