![]() |
שאילתת Mysql לא תקינה
יש שאילתה שמאפשרת למשתמש למחוק את הפרופיל שלו מהמערכת,
אני מעוניין למחוק את השורה בכל טבלה שה-UID הוא 200. הטבלאות במסד הן: signup, users_blocks, users_flags, users_online, users_prefs ככה זה כתוב היום (וזה לא עובד) שאילתת מחיקה ליוזר מס' 20: קוד:
תודה אבי |
מה השגיאה?
|
קוד:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE UID = 200' at line 1 |
לדעתי אתה אמור להגדיר בכל טבלה אידי
PHP קוד:
|
ניסיתי כל מיני וריאציות ולא הצלחתי,
לגבי השאילתה שלך: קוד:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE signup.UID = 200 and users_blocks.UID = 200 and users_flags.UID = 200 a' at line 1 |
לפי מיטב זכרוני זה סתם מסובך למחוק בשיטה שאתה רוצה..
עדיף לך לדחוס שאילתות במכה אחת, זה שונה מלשלוח אותן שוב ושוב. ז"א DELETE FROM signup WHERE UID = 200;DELETE FROM signup WHERE UID = 200;DELETE FROM table3 WHERE UID = 200; * חשוב שתסיים את השאילתא ב ; ותתחיל אחת חדשה |
בכל טבלה קיים השדה UID ? אם כן, בכל טבלה הוא זהה ל ID של ה USER ?
אני שואל כי זה הכי הגיוני, ומה ששגיא כתב פה אמור לעבוד. |
כשמדובר בכמה טבלאות אתה צריך להוסיף בין ה DELETE ל FROM את שמות הטבלאות/שדות כמו בSELECT
DELETE `signup`.*, `asd`.* FROM `signup`, `asd` WHERE `UID` = 200 http://dev.mysql.com/doc/refman/5.0/en/delete.html |
למה שתרצה אגב למחוק נתון מהDATABASE?
אני פשוט עושה לו UPDATE לשדה STATUS 0. אין למה למחוק שום נתון עדיף לשמור . |
ציטוט:
כאשר אין שימוש בנתון נחוץ למחוק אותו כמובן מה הקטע בלשמור "זבל" על המסד נתונים? מבזבז זיכרון ומעלה את זמן הריצה של השאילתות על הטבלה בצורה ניכרת. |
כל הזמנים הם GMT +2. הזמן כעת הוא 08:58. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ