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

[MySQL]:दो आश्रित तालिकाओं से पंक्तियों को हटाएं

आप किसी तालिका से तब तक नहीं हटा सकते जब तक निर्भर रिकॉर्ड अभी भी किसी अन्य तालिका में मौजूद हैं। आपके मामले में, निर्भरता इस प्रकार है

Transaction <- Purchase -> Item

इसलिए लेन-देन को हटाने से पहले आपको किसी भी खरीदारी को हटाना होगा।

उस दो-चरणीय दृष्टिकोण के विकल्प के रूप में, मैं एक ON DELETE CASCADE बाधा और इसके साथ जाएं:

DELETE 
  Transaction 
WHERE 
  Transaction_ID IN (
    SELECT 
      Transaction_ID 
    FROM
      Purchase INNER JOIN Item ON Item.Item_ID = Purchase.Item_ID
    WHERE
      Item.Client_ID = <your Client ID here>
  )

सावधान रहें कि इससे कोई भी Transaction हट जाता है (और, CASCADE के माध्यम से, कोई भी Purchase ) जहां एक आश्रित Item . है मेल खाने वाले Client_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 क्वेरी ऑप्टिमाइज़ेशन का चयन करें और mysql में सीमा कैसे काम करती है

  2. तालिका में कॉलम मानों के समान जोड़े की जाँच के लिए sql क्वेरी क्या होगी?

  3. त्रुटि:क्लाइंट सर्वर द्वारा अनुरोधित प्रमाणीकरण प्रोटोकॉल का समर्थन नहीं करता है; MySQL क्लाइंट को अपग्रेड करने पर विचार करें

  4. MySQL दशमलव फ़ील्ड PHP में स्ट्रिंग्स के रूप में लौटा है

  5. MySQL - टाइमस्टैम्प कॉलम से हर 2 घंटे के अंतराल का चयन करें