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

अनुमोदन के साथ डेटाबेस संपादित करें - mysql

हमारी एक साइट पर कुछ ऐसा ही है, हमने तालिकाओं का एक समूह जोड़ा है:

users sites ... आदि

फिर हमारे पास शैडो टेबल का एक गुच्छा होता है:

users-shadow sites-shadow ... आदि

परिवर्तन करने वाले उपयोगकर्ता के लिए एक अतिरिक्त पंक्ति को छोड़कर छाया तालिकाओं में वास्तविक तालिकाओं के समान संरचनाएं होती हैं। इसलिए सबसे पहले हम इस क्वेरी का उपयोग तब करते हैं जब किसी उपयोगकर्ता द्वारा परिवर्तन सबमिट किया जाता है, जिसे अपने डेटाबेस कार्यों को स्वीकृत करने की आवश्यकता होती है:

REPLACE INTO users-shadow (user_mod,id,username,password,salt...) VALUES (16,50,'bob','stuff','salt'...);

जाहिर है, सुनिश्चित करें कि यह इंजेक्शन के लिए खुला नहीं है, तैयार बयान आदि

स्वीकृत होने पर, shadow में एक पंक्ति तालिका को केवल shadow . से हटा दिया जाता है तालिका, user_mod मूल्य गिरा और परिवर्तन (गैर-शून्य मान) वास्तविक तालिका में डाला गया (या यदि कोई id अद्यतन किया गया हो) निर्दिष्ट किया गया है, REPLACE का उपयोग करके वाक्य - विन्यास)। हम इस तर्क को पर्ल में करते हैं इसलिए दुख की बात है कि इसके लिए कोई एसक्यूएल हाथ में नहीं है।

याद रखें कि SQL REPLACE एक DELETE करता है और एक INSERT UPDATE के बजाय . इस व्यवहार की अनुमति देने के लिए आपको किसी भी ट्रिगर में संशोधन करना होगा।

नोट:हमने 'स्वीकृति' ध्वज का उपयोग नहीं करने का कारण यह था कि हमें मौजूदा रिकॉर्ड में संशोधन करने की क्षमता की आवश्यकता थी, निश्चित रूप से हमारे पास एक ही प्राथमिक कुंजी के साथ कई रिकॉर्ड नहीं हो सकते थे।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. बड़ी तालिका से कॉलम ड्रॉप करें

  2. DISTINCT केवल पहले चार नंबर चुनें

  3. MySQL से जुड़ने के लिए टॉमकैट को कैसे कॉन्फ़िगर करें

  4. SQLAlchemy में फ़िल्टर के रूप में गणितीय समीकरणों का उपयोग कैसे करें

  5. mysql डेटाबेस में php कोड स्निपेट कैसे डालें?