איך כדאי למספר עמודה משנית בpostgresql?
-
https://stackoverflow.com/questions/6821871/postgresql-sequence-based-on-another-column
האפשרות של window function נראית לי טובה יותר מהsequence
אבל בלי שום קשר לאיך תעשה אתה אמור להיות יכול להשתמש בפרמטרים ולא לחשוב בכלל על "האם יש בעיה של הזרקה" - המחשבה הזאת היא פרצת אבטחה בפני עצמה.
אין לי מושג מה הקליינט שלך (מנחש שGO) הוא חייב לתמוך בפרמטרים ובטוקניזציה בטוחה. -
-
זו אותה שאלה שאני שאלתי בעבר?
https://tchumim.com/post/111656 -
@yossiz אמר באיך כדאי למספר עמודה משנית בpostgresql?:
זו אותה שאלה שאני שאלתי בעבר?
כך זה נראה. אמנם פונקציית חלון לא הייתה קיימת בגרסאות 9.5 ומטה, כך שאיני יודע אם בזמן השאלה היה קיים הפתרון הנ"ל.
-
@odeddvir
ראיתי שם את התשובה השניה והתחלתי לשחק עם השאילתות לראות איך זה עובד.
סתם נסחפתי לנושא של הפרמטרים.
את הרעיון של sequence קיבלתי מהמדריך הזה
שמסביר איך הסוג עמודה SERIAL עובדCREATE SEQUENCE table_name_id_seq; CREATE TABLE table_name ( id integer NOT NULL DEFAULT nextval('table_name_id_seq') ); ALTER SEQUENCE table_name_id_seq OWNED BY table_name.id;
חשבתי שהסיבה שבחרו בדרך הזאת זה כנראה בגלל יעילות
אז למה שאני לא יעשה ככה גם.עכשיו אני מנסה להבין מה
ROW_NUMBER()
עושה מאחורי הקלעים ונראה האם זה יעיל או סתם נועל את כל הטבלה ללא צורך?
ובמה זה שונה משאילתת MAX? -
ליתר בטחון תעשה כלל uniqe על 2 העמודות הללו ביחד.
ואז לא יהיה מצב של כפילות. מקסימום אתה מריץ כמה פעמים את השאילתה (לדעתי זה הפתרון הכי קל, להריץ בלולאה עם כמה ניסיונות- attempts).(אגב, אני לא מצליח להיזכר בדיוק, אבל יש מנגנון דומה בעוד מקומות של התנגשות, אולי של התנגשות בגישה לרשומת ב DB או סתם מערכת קבצים, ואז כל תהליך מנסה להמתין זמן רנדומלי, וכו, לא זוכר את הסוף)
-
@מנצפך אמר באיך כדאי למספר עמודה משנית בpostgresql?:
(אגב, אני לא מצליח להיזכר בדיוק, אבל יש מנגנון דומה בעוד מקומות של התנגשות, אולי של התנגשות בגישה לרשומת ב DB או סתם מערכת קבצים, ואז כל תהליך מנסה להמתין זמן רנדומלי, וכו, לא זוכר את הסוף)
-
@nigun אמר באיך כדאי למספר עמודה משנית בpostgresql?:
אני רוצה שיהיה יוניק רק ביחס לעמודה השניה, לא ביחס לכל הטבלה.
@מנצפך אמר באיך כדאי למספר עמודה משנית בpostgresql?:
תעשה כלל uniqe על 2 העמודות הללו ביחד