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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ערך רנדומלי בשדה mysql.

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

מתוזמן נעוץ נעול הועבר תכנות
4 פוסטים 2 כותבים 102 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • 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
          • דף הבית
          • קטגוריות
          • פוסטים אחרונים
          • משתמשים
          • חיפוש
          • חוקי הפורום