समस्या
DESC MySQL में एक आरक्षित शब्द (reserved word) है, इसलिए इसे सीधे कॉलम नाम के रूप में उपयोग नहीं किया जा सकता।
समाधान: बैकटिक्स (` `) का उपयोग
आरक्षित शब्दों को कॉलम नाम के रूप में उपयोग करने के लिए, उन्हें बैकटिक्स में लपेटें।
व्यावहारिक उदाहरण
बैकटिक्स के साथ टेबल बनाना
mysql> CREATE TABLE useOfDescColumnNameDemo (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name VARCHAR(20),
-> `desc` VARCHAR(200) DEFAULT 'GOOD'
-> );
Query OK, 0 rows affected (0.60 sec)
डेटा डालना
mysql> INSERT INTO useOfDescColumnNameDemo(Name) VALUES('John');
mysql> INSERT INTO useOfDescColumnNameDemo(Name) VALUES('Bob');
mysql> INSERT INTO useOfDescColumnNameDemo(Name) VALUES('Carol');
mysql> INSERT INTO useOfDescColumnNameDemo(Name) VALUES('Sam');
सभी रिकॉर्ड देखना
mysql> SELECT * FROM useOfDescColumnNameDemo;
आउटपुट: 4 पंक्तियाँ जिनमें Id, Name, और desc (डिफ़ॉल्ट 'GOOD') कॉलम हैं
बैकटिक्स के साथ विशिष्ट कॉलम चुनना
mysql> SELECT `desc` FROM useOfDescColumnNameDemo;
आउटपुट: केवल desc कॉलम के मान (सभी 'GOOD')
सर्वोत्तम अभ्यास
- हमेशा आरक्षित शब्दों के लिए बैकटिक्स का उपयोग करें
- संभावित भविष्य के आरक्षित शब्दों के लिए भी बैकटिक्स का उपयोग करना सुरक्षित है
- क्वेरी में सभी पहचानकर्ताओं (टेबल नाम, कॉलम नाम) के लिए बैकटिक्स का उपयोग करने की आदत डालें