פורסם 2007 בדצמבר 3117 שנים שלום,כדי לעדכן בסיס נתונים, אני משתמש בUPDATE tabe SET... כדי להוסיף אני כותב INSERT INTO... ואם אני רוצה לעשות את שני הפעולות בquery אחת? איך אני מחבר בניהן כדי שהדבר יעבוד?תודה מראש.
פורסם 2007 בדצמבר 3117 שנים אתה יכול ליצור פקודת SQL אחת שמכילה את שתיהן מופרדות באמצעות ;ואתה יכול ליצור stored procedure.
פורסם 2007 בדצמבר 3117 שנים מה הכוונה?באותה שאילתא אתה גם רוצה ליצור שורה חדשה (עם ערכים), ואז לעדכן את הערכים?למה לא ליצו ראותה כבר עם הערכים הטובים?הרי כשאתה יוצר שורה חדשה בDB אתה נותן לשדות שלה נתונים. אני לא רואה כל היגיון לשנות אותם מיד לאחר מכן.אגב, סטור-פרוסיג'ר לא כ"כ יענה על זה, סטור-פרוסיג'ר היא פשוט שאילתה ששמורה בתוך הDB, שאתה רק שולח את הערכים לתוכה, ושקוף לך מה שקורה בפנים. מיילא פונקציית של PL/SQL הייתה עוזרת פה, אבל עד כמה שאני יודע זו אפשרות שקיימת רק במסדי נתונים של Oracle (אני יודע שהם המציאו את זה, אני לא יודע אם חברה מתחרה שלה עושה את השיטה הזו גם כן.
פורסם 2007 בדצמבר 3117 שנים מחבר אתה יכול ליצור פקודת SQL אחת שמכילה את שתיהן מופרדות באמצעות ;ואתה יכול ליצור stored procedure.";" זה בעצם מה שהייתי צריך...תודה לשניכם...אבל משום מה אני בכל זאת לא מצליח לשלב משהו בתוך קוד קיים.
פורסם 2007 בדצמבר 3117 שנים מה אתה רוצה לעשות?קשה לי לחשוב על פעולה שדורשת כזו שאילתה.אגב, כאשר אתה מפריד משהו בנקודה-פסיק בsql, אתה בעצם מפריד את העסק ל2 שאילתות נפרדות.
פורסם 2008 בינואר 117 שנים זה חוסך לך קצת את הקיראה הנוספת לאובייקט שמריץ את השאילתא.ודוגמא לפעולה שדורשת 2 שאילתות (ל Aurora Borealis): הוספת פעולה לארוע מסויים ועדכון סטטוס הארוע בהתאם לפעולה שננקטה.
פורסם 2008 בינואר 117 שנים אבל בין ההוספת אירוע, לבין העדכון של האירוע קורים כמה פעולות מצד המשתמש (או התוכנה), ולכן אם העדכון קורה מיד לאחר היצירה (הוא רצה לעשות את 2 הפעולות ממש צמודות), אין לתוכנה/מתמש בכלל הזדמנות לגרום למידע המוכנס לDB להשתנות.לכן לדעתי אפשר פשוט להכניס את המידע המעודכן לDB כבר בפקודה שיוצרת את השורה החדשה, ולא פעם אחת ליצור את השורה עם מידע מסויים, ומיד אחר כך לשנות אותו.אלא אם כן אתה מדבר על 2 רשומות שונות לגמרי (מה שלא הובן כ"כ מהשאלה פה), ואז זה הגיוני לעשות דבר כזה. למקרה כזה, באמת אפשר לשים את הנקודה-פסיק הזאת, למרות שלדעתי זה לא פתרון טוב, כי מבחינה לוגית-תכנותית הוא לא הכי מתאים. במקרים כאלה משתמשים בPL/SQL, אם הDB שלך תומך באפשרות.
פורסם 2008 בינואר 217 שנים מחבר אני עורך (מנסה) מערכת phpBB ושם יש לי מוד מסויים מותקן. זהו מוד נקודות - מישהו תורם למישהו נקודות. המוד במקור מבצע רק פעולה של התרומה - כלומר, מוסיף נקודות למישהו וזהו. אני מנסה גם לתעד את התרומה. יצרתי טבלה של התורמים ובה אני רוצה לאכסן מידע אודות התרומה - מי, מתי וכמה. מה שניסתי לעשות ע"י 2 שאילתות בתוך אחת זה שכשהמוד מעדכן את המידע אודות מצב הנקודות של המשתמש, מתבצע גם רישום בטבלה החדשה שיצרתי. מסיבה כלשהי, זה לא כל כך מצליח לי...
פורסם 2008 בינואר 217 שנים תחקור קצת על האפשרות של טרנסאקציות בDB.באנגלית: TransActions, לדעתי כדאי לך לחקור קצת את מה שהאפשרות הזו נותנת, שכן בעזרתה תוכל לדאוג מכל הקטע של אם יהיו כפילויות במידע בDB, ואולי זה גם יפתור לך את הבאגים שאתה נתקל בהם.אם תפרט מה בדיוק ניסית לעשות (לפרט שליפות SQL, ואולי גם את הERD שלך), יהיה יותר קל לעזור לך.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.