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

कॉलम अपडेट करने के लिए डेटाबेस पर सभी तालिकाओं के माध्यम से कैसे लूप करें

एक दर्द रहित विकल्प एक क्वेरी बनाना होगा जो UPDATE . उत्पन्न करता है वे स्टेटमेंट जिन्हें आप सभी टेबल पर चलाना चाहते हैं:

SELECT CONCAT('UPDATE ', a.table_name, ' SET date = "2016-04-20" WHERE name = "Example";')
FROM information_schema.tables a
WHERE a.table_schema = 'YourDBNameHere'

आप इस क्वेरी से आउटपुट को कॉपी कर सकते हैं, इसे क्वेरी एडिटर में पेस्ट कर सकते हैं और इसे चला सकते हैं।

अपडेट करें:

जैसा कि @PaulSpiegel ने बताया, उपरोक्त समाधान असुविधाजनक हो सकता है यदि कोई HeidiSQL जैसे संपादक का उपयोग कर रहा है, क्योंकि इसके लिए परिणाम सेट में प्रत्येक रिकॉर्ड को मैन्युअल रूप से कॉपी करना होगा। GROUP_CONCAT() . का उपयोग करके कोई तरकीब अपनाना प्रत्येक वांछित UPDATE युक्त एक एकल स्ट्रिंग देगा इसमें क्वेरी करें:

SELECT GROUP_CONCAT(t.query SEPARATOR '; ')
FROM
(
    SELECT CONCAT('UPDATE ', a.table_name,
                  ' SET date = "2016-04-20" WHERE name = "Example";') AS query,
        '1' AS id
    FROM information_schema.tables a
    WHERE a.table_schema = 'YourDBNameHere'
) t
GROUP BY t.id


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेटाबेस से कनेक्ट नहीं हो सकता (000webhost)

  2. मैं mysql में एकाधिक मान कैसे सम्मिलित करूं और डुप्लिकेट से कैसे बचूं?

  3. अद्यतन के लिए SELECT ... ORDER BY xxx LIMIT 1 द्वारा कितनी पंक्तियों को लॉक किया जाएगा?

  4. mysql अन्य तालिका से आईडी और नाम का चयन करें और क्वेरी में शामिल हों

  5. एक अतुल्यकालिक दास से MySQL गैलेरा क्लस्टर को कैसे पुनर्प्राप्त करें