मेरे पास एक टेबल इंस्ट्रक्टर है और मैं उन रिकॉर्ड्स को हटाना चाहता हूं जिनमें वेतन एक सीमा में है। एक सहज तरीका इस प्रकार है:
delete from instructor where salary between 13000 and 15000;
हालांकि, सुरक्षित मोड के तहत, मैं एक प्राथमिक कुंजी (आईडी) प्रदान किए बिना रिकॉर्ड को हटा नहीं सकता।
इसलिए मैं निम्नलिखित एसक्यूएल लिखता हूं:
delete from instructor where ID in (select ID from instructor where salary between 13000 and 15000);
हालाँकि, एक त्रुटि है:
You can't specify target table 'instructor' for update in FROM clause
मैं उलझन में हूं क्योंकि जब मैं लिखता हूं
select * from instructor where ID in (select ID from instructor where salary between 13000 and 15000);
यह एक त्रुटि उत्पन्न नहीं करता है।
मेरा सवाल यह है कि:
- इस त्रुटि संदेश का वास्तव में क्या मतलब है और मेरा कोड गलत क्यों है?
- सुरक्षित मोड के तहत काम करने के लिए इस कोड को कैसे फिर से लिखना है?
धन्यवाद!
