ABA


"מחפש פקודה ב MYSQL אם קיימת.."
גירסת הדפסה        
קבוצות דיון בניית אתרים נושא #13751 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 13751
lior066

   16:07   06.04.08   
אל הפורום  
  מחפש פקודה ב MYSQL אם קיימת..  
 
   מה המצב אנשים ,

אני יצרתי לעצמי טבלה חדשה שמאחסנת בתוכה רשימה של חברים, להלן הטבלה


Members_Friends
_______________
ID (int)
FRIENDID (int)
MEMBERID (int)
_______________

עכשיו מה שאני רוצה לדעת אם יש פקודה כלשהי של INSERT כאשר אני יכניס הוא יבדוק שאין את אותה שורה בדיוק , המפתח הראשי שלי זה ה ID והוא למעשה משתנה כל הזמן אז אני צריך לבדוק שאין לי את האידים של ה FRIEND וה MEMBER

אני לא יכול לבצע הל השדות האלה מפתחות כלשהם ואני מרגיש בזבוז לבצע שאילתה לבדיקה של המחרוזות , למרות שאני יכול.

מה שאני מחפש זה פקודה שלא תכניס לי רשומה כפולה ובטוח יש דבר כזה.. פשוט אני לא יודע מה לחפש..

תודה לעוזרים , צהריים טובים


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  יש 2 אפשרויות :) akoka 06.04.08 16:51 1
     תודה אחי אני יחקור את זה קצת :) lior066 06.04.08 17:28 2
  למה להסתבך? Kent Net 07.04.08 21:34 3
     כי אז זה גורם לו ליצור עוד שאילתא akoka 07.04.08 23:26 4
         אולי Kent Net 08.04.08 00:45 5
             לא תמיד כי במקרה ואין ערך כזה כבר אתה akoka 08.04.08 09:44 6

       
akoka

   16:51   06.04.08   
אל הפורום  
  1. יש 2 אפשרויות :)  
בתגובה להודעה מספר 0
 
   זה מעט מסובך
http://dev.mysql.com/doc/refman/4.1/en/transactional-statements.html

או משהו הרבה יותר פשוט
http://feedblog.org/2006/07/27/using-on-duplicate-key-update-to-improve-mysql-replication-performance/

אני מעדיף את האופציה השניה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
lior066

   17:28   06.04.08   
אל הפורום  
  2. תודה אחי אני יחקור את זה קצת :)  
בתגובה להודעה מספר 1
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Kent Net
חבר מתאריך 18.3.02
2359 הודעות
   21:34   07.04.08   
אל הפורום  
  3. למה להסתבך?  
בתגובה להודעה מספר 0
 
  

select * from Members_Friends where friendid=X AND memberid=Y
if number_of_rows > 0
insert into...

רוצים גם אתם חתימת פז"ם ? https://.net/


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
akoka

   23:26   07.04.08   
אל הפורום  
  4. כי אז זה גורם לו ליצור עוד שאילתא  
בתגובה להודעה מספר 3
 
   רק כדי לבדוק אם קיים כבר ערך כזה ,הרעיון הוא לבדוק בזמן הINSERT ,בשביל זה נוצרו טרנזאקציות שהמשמעות שלהם הכול או כלום זתומרת שאתה יוצר טרנזאקציה שתעדכן לך שדה מסויים במסד ,אבל העידכון הזה מתבצע רק במקרה ותנאי מסויים קורה אם לא אז אתה משתמש בrollback ואז כול העסק מתבטל ואין עדכון ,אבל פה הוא לא צריך את זה ,הוא צריך להשתמש בON DUPLICATE UPDATE וזה מספיק בשבילו.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Kent Net
חבר מתאריך 18.3.02
2359 הודעות
   00:45   08.04.08   
אל הפורום  
  5. אולי  
בתגובה להודעה מספר 4
 
   ערכתי לאחרונה בתאריך 08.04.08 בשעה 00:45 בברכה, Kent Net
 
אבל תסכים איתי שברגע שאתה משתמש ב DUPLICATE UPDATE הוא אוטומטית מחפש שורה עם אותם הערכים
אז השגת כאן פעולת שרת כמעט זהה לחלוטין

רוצים גם אתם חתימת פז"ם ? https://.net/


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
akoka

   09:44   08.04.08   
אל הפורום  
  6. לא תמיד כי במקרה ואין ערך כזה כבר אתה  
בתגובה להודעה מספר 5
 
   לא תגיע לUPDATE ובמקרה שלך תמיד הוא ייבדוק אם קיים ערך כזה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net