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

सुरक्षित मोड के तहत mysql हटाएं

चारों ओर घूमते हुए, लोकप्रिय उत्तर लगता है "बस सुरक्षित मोड बंद करें" :

SET SQL_SAFE_UPDATES = 0;
DELETE FROM instructor WHERE salary BETWEEN 13000 AND 15000;
SET SQL_SAFE_UPDATES = 1;

अगर मैं ईमानदार हूं, तो मैं यह नहीं कह सकता कि मैंने कभी सेफ मोड में दौड़ने की आदत बनाई है। फिर भी, मैं इस उत्तर के साथ पूरी तरह से सहज नहीं हूं क्योंकि यह सिर्फ यह मानता है कि जब भी आप किसी समस्या में भाग लेते हैं तो आपको अपना डेटाबेस कॉन्फ़िगरेशन बदलना चाहिए।

तो, आपकी दूसरी क्वेरी निशान के करीब है, लेकिन एक और समस्या आती है:MySQL सबक्वायरीज़ पर कुछ प्रतिबंध लागू करता है, और उनमें से एक यह है कि आप सबक्वायरी में से चयन करते समय एक टेबल को संशोधित नहीं कर सकते हैं।

MySQL मैनुअल से उद्धृत, सबक्वायरी पर प्रतिबंध :

वह आखिरी बिट आपका जवाब है। अस्थायी तालिका में लक्ष्य आईडी चुनें, फिर उस तालिका में आईडी का संदर्भ देकर हटाएं:

DELETE FROM instructor WHERE id IN (
  SELECT temp.id FROM (
    SELECT id FROM instructor WHERE salary BETWEEN 13000 AND 15000
  ) AS temp
);

SQLFiddle डेमो



  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. PHP से जावास्क्रिप्ट तक AJAX के माध्यम से सरणी पास करना

  3. कोडइग्निटर:प्रदान की गई सेटिंग्स का उपयोग करके अपने डेटाबेस सर्वर से कनेक्ट करने में असमर्थ त्रुटि संदेश

  4. ट्री ट्रैवर्सल एल्गोरिथम के आधार पर इस परिणाम सेट से ट्री व्यू कैसे उत्पन्न करें?

  5. छवि फ़ाइलों या URL को MySQL डेटाबेस में संग्रहीत करें? कौनसा अच्छा है?