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

MySQL पर डेटाबेस लेनदेन के भीतर कोडसेप्शन स्वीकृति परीक्षण

हमेशा अन्य विकल्प होते हैं :)।

मेरे मामले में, डंप का उपयोग करना सवाल से बाहर था क्योंकि हमारे पास एक बहुत बड़ा डेटाबेस भी है (1.2 जीबी जब आवश्यक हो,> 250 जीबी लाइव पर)। इसके बजाय, मेरे पास .sql फाइलों का एक गुच्छा है जो किसी भी रिकॉर्ड को हटा देता है जो एक विशिष्ट परीक्षण द्वारा डाला गया था।

मेरे पास एक वर्ग डीबी हेल्पर है जिसमें प्रश्नों को चलाने के लिए यह कार्य है:

public function executeOnDatabase($path_to_sql_file)
{
    $sql = file_get_contents($path_to_sql_file);
    $dbh = $this->getModule('Db')->dbh;
    $this->debugSection('Query', $sql);
    $sth = $dbh->prepare($sql);

    return $sth->execute();
}

एक आकर्षण के रूप में काम करता है, और परीक्षणों को चलाने के लिए और अधिक ओवरहेड नहीं होता है।

अपडेट करें:

यदि आप उपयोगकर्ताओं और उनके संबंधित डेटा से निपटते हैं, तो आमतौर पर उन सभी रिकॉर्ड को लक्षित करना बहुत आसान होता है जिन्हें आपको निकालने की आवश्यकता होती है। सबसे अधिक संभावना है कि उपयोगकर्ता नाम और ईमेल अद्वितीय हैं, और आप उनका उपयोग उपयोगकर्ता की आईडी (ऑटो इंक्रीमेंट प्राइमरी की) प्राप्त करने के लिए कर सकते हैं। संबंधित तालिकाओं में उस आईडी का उपयोग होने की संभावना है। उदाहरण के लिए इस तरह:

SET @user_id = (SELECT `id` FROM `users` WHERE `username` = 'rgsfdg');
SET @email = '[email protected]';
DELETE FROM `mail_queue` WHERE `send_to` = @email;
DELETE FROM `user_settings` WHERE `user_id` = @user_id;
DELETE FROM `users` WHERE `id` = @user_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. MySQL डेटाबेस सेवा - नई हीटवेव इनोवेशन

  2. mysql और php . का उपयोग करके कैस्केडिंग ड्रॉप-डाउन सूचियां कैसे बनाएं?

  3. स्थानीय अनुक्रम विन्यास के लिए एक पर्यावरण चर का उपयोग करना

  4. MySQL लेफ्ट जॉइन डुप्लीकेट परिणाम

  5. क्या एक गो माईस्क्ल ड्राइवर मौजूद है जो एक स्ट्रिंग के भीतर एकाधिक कथनों का समर्थन करता है?