כיצד לאפס רצף ב-PostgreSQL

Kyzd L Ps Rzp B Postgresql



שימוש ברצף PostgreSQL הוא דרך יעילה לעבודה עם ערך הגדלה אוטומטית, במיוחד עבור מפתחות ראשיים. כאשר ערך ההתחלה אינו מוגדר, ההגדלה האוטומטית עבור INT תתחיל ב-0. עם זאת, תוכל לציין באיזה ערך התחלתי להשתמש עבור הרצף בעמודת ההגדלה האוטומטית שלך.

יתרה מכך, אם אתה מקבל מצב שמחייב אותך לשנות את הערך הבא ברצף, אתה יכול לאפס במהירות את הרצף ולציין מאיזה ערך להתחיל עבור הערך הבא בטבלה. כל הפרטים שכדאי לדעת לגבי איך לאפס רצף ב-PostgreSQL מפורטים בפוסט הזה. תסתכל!

דוגמה כיצד לאפס רצף ב-PostgreSQL

עם עמודת INT, אתה יכול ליצור רצף של הגדלה אוטומטית ולהשתמש בו כמפתח הראשי לטבלה שלך. בדרך זו, לא תצטרך להזין את הערכים שלו בעת הפעלת שאילתת INSERT מכיוון שערכי המספרים השלמים ייווצרו באופן אוטומטי. עם יצירת הרצף, הפקודה ALTER SEQUENCE מאפשרת לך להפעיל מחדש את הרצף ולציין ערך התחלתי חדש עבור הערכים החדשים.







עבור דוגמה זו, נעבוד עם טבלת 'פרטי המשתמש' הבאה. המיקוד שלנו הוא העמודה 'user_id' שהיא רצף של תוספת אוטומטית שמתחילה ב-100.





כדי לרשום את הרצפים השונים במסד הנתונים שלך, הפעל את הפקודה הבאה:





\ds

במקרה שלנו, אנו מכוונים לרצף 'user_id'.



כדי לקבל פרטים נוספים על הרצף, הפעל את השאילתה 'בחר' כפי שמוצג להלן:

SELECT * FROM sequence_name;

אנו יכולים לראות שהערך האחרון ברצף הקיים הוא 104. אנו מאפסים את הערך הזה ומגדירים ערך חדש שיהיו לערכים החדשים.

כדי לאפס את רצף PostgreSQL, השתמש בפקודה הבאה:

ALTER SEQUENCE 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.