• דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

ערך רנדומלי בשדה mysql.

מתוזמן נעוץ נעול הועבר תכנות
4 פוסטים 2 כותבים 63 צפיות
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • chagoldC מנותק
    chagoldC מנותק
    chagold
    כתב ב נערך לאחרונה על ידי chagold
    #1

    אני רוצה שדה רנדומלי בטבלה במסד נתונים mysql. לא משנה אם הרנדומלי הוא מספרי או טקסט.

    בגירסה ישנה של mysql השתמשתי ב

    ALTER TABLE user ADD `token` char(12) DEFAULT RAND();
    

    אבל בגירסה חדשה יותר הוא נותן לי שגיאה

    #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 'RAND()' at line 1
    

    איך עוקפים את זה, או מגדירים משהו אחר (אולי בAUTO_INCREMENT)?

    OdedDvirO תגובה 1 תגובה אחרונה
    1
  • OdedDvirO מנותק
    OdedDvirO מנותק
    OdedDvir
    השיב לchagold ב נערך לאחרונה על ידי
    #2

    @chagold לפי הדוקומנטציה, ערך ברירת המחדל יכול להיות רק קבוע:

    the default value specified in a DEFAULT clause must be a literal constant; it cannot be a function or an expression.

    יש כאן הצעה חלופית על ידי יצירת טריגר.
    וכאן יש הצעה לעשות מניפולציה מספרית על השדה ID.

    chagoldC תגובה 1 תגובה אחרונה
    3
  • chagoldC מנותק
    chagoldC מנותק
    chagold
    השיב לOdedDvir ב נערך לאחרונה על ידי chagold
    #3

    @odeddvir
    אני מנסה עם הטריגר.
    זה -

    CREATE TRIGGER trigger_code BEFORE INSERT ON user FOR EACH ROW SET @token=MD5( RAND ());
    

    כשהטבלה היא user והשדה token זה מורץ תקין, אבל ברגע האמת לא עובד.

    מה לא הבנתי טוב?

    881fe405-de7c-4065-930c-67e6999679e6-image.png

    OdedDvirO תגובה 1 תגובה אחרונה
    0
  • OdedDvirO מנותק
    OdedDvirO מנותק
    OdedDvir
    השיב לchagold ב נערך לאחרונה על ידי
    #4

    @chagold אמר בערך רנדומלי בשדה mysql.:

    מה לא הבנתי טוב?

    תשתמש בקידומת NEW עבור השדה החדש שנוצר, כך:

    CREATE TRIGGER trigger_code BEFORE INSERT ON user FOR EACH ROW SET NEW.token=MD5( RAND ());
    
    תגובה 1 תגובה אחרונה
    1

  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.
  • פוסט ראשון
    פוסט אחרון
0
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום