Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

web2py में टेबल में कुछ टुपल्स डालें

डिफ़ॉल्ट रूप से, auth_user . में डालने पर पासवर्ड हैश हो जाते हैं तालिका (पासवर्ड फ़ील्ड से जुड़े फॉर्म सत्यापनकर्ता के माध्यम से)। इसलिए, आप टेबल में प्लेन टेक्स्ट पासवर्ड का एक मानक SQL इंसर्ट नहीं करना चाहते हैं (न केवल वह असुरक्षित है, बल्कि लॉगिन के बाद के प्रयास विफल हो जाएंगे क्योंकि Auth हैशेड पासवर्ड की अपेक्षा कर रहा है)।

बल्क इंसर्ट करते समय हैशिंग करने का सबसे आसान तरीका है रिकॉर्ड्स को लूप करना और .validate_and_insert का उपयोग करके हर एक को इन्सर्ट करना। तरीका। यह सभी फ़ील्ड सत्यापनकर्ताओं को चलाएगा (जिसके परिणामस्वरूप पासवर्ड हैश हो जाएंगे), और सत्यापन में विफल होने वाले किसी भी रिकॉर्ड को बस सम्मिलित नहीं किया जाएगा (इसलिए, उदाहरण के लिए, एक डुप्लिकेट उपयोगकर्ता नाम सम्मिलित नहीं किया जाएगा क्योंकि यह सत्यापन विफल हो जाएगा)।

for user in db(db.user).select():
    db.auth_user.validate_and_insert(username=user.username, password=user.password)

हालांकि सत्यापन प्रक्रिया स्वचालित रूप से किसी भी डुप्लिकेट उपयोगकर्ता नाम को अस्वीकार कर देगी, यदि आप बहुत अधिक डुप्लिकेट की अपेक्षा करते हैं और दक्षता में सुधार करना चाहते हैं, तो आप पहले user से केवल गैर-डुप्लिकेट का चयन कर सकते हैं। तालिका:

users = db(~db.user.username.belongs(db()._select(db.auth_user.username))).select()
for user in users:
    db.auth_user.validate_and_insert(username=user.username, password=user.password)

साथ ही, ध्यान दें कि डिफ़ॉल्ट रूप से, auth_user तालिका को first_name में मानों की आवश्यकता होती है , last_name , और email फ़ील्ड (और कुछ Auth . के लिए एक मान्य ईमेल पता आवश्यक है कार्यक्षमता, जैसे पासवर्ड रीसेट करना)। इसलिए, आपको या तो उन क्षेत्रों को भी भरने की योजना बनानी चाहिए, या अन्यथा उनकी requires set सेट करनी चाहिए None . के गुण इसलिए सत्यापन विफल नहीं होता है। उदाहरण के लिए:

db.auth_user.first_name.requires = None

एक अन्य विकल्प कस्टम auth_user . को परिभाषित करना है टेबल।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql प्राकृतिक छँटाई

  2. अस्थायी का उपयोग करके mysql प्रदर्शन में योजना की व्याख्या करें; फाइलसॉर्ट का उपयोग करना; इंडेक्स कंडीशन का उपयोग करना

  3. क्लॉज के साथ मैसकल सेलेक्ट इंडेक्स का उपयोग नहीं करता है

  4. दिए गए समय में हर 5 मिनट में डेटा का औसत

  5. जावा MySQL अद्यतन क्वेरी