MySQL में डेटाबेस नाम संख्या से शुरू हो या केवल संख्या हो तो बैकटिक्स (`) से घेरना आवश्यक है, अन्यथा सिंटैक्स त्रुटि (ERROR 1064) होती है।
समस्या
mysql> CREATE DATABASE 1233; ERROR 1064 (42000): You have an error in your SQL syntax near '1233' at line 1
समाधान: बैकटिक्स उपयोग करें
mysql> CREATE DATABASE `1233`; Query OK, 1 row affected
उपयोग
mysql> USE `1233`; Database changed
पहचानकर्ता उद्धरण नियम
| स्थिति | बैकटिक्स आवश्यक? | उदाहरण |
|---|---|---|
| संख्या से शुरू | हां | `123db` | केवल संख्या | हां | `1233` |
| आरक्षित शब्द | हां | `order`, `select` |
| विशेष वर्ण | हां | `my-table`, `my table` |
| सामान्य नाम | नहीं (लेकिन अनुशंसित) | mydb या `mydb` |
सर्वोत्तम अभ्यास
- हमेशा पहचानकर्ताओं के लिए बैकटिक्स उपयोग करें
- संख्यात्मक या आरक्षित शब्द नाम टालें
- अर्थपूर्ण, वर्णनात्मक नाम चुनें
ANSI SQL मोड
SET SQL_MODE = 'ANSI_QUOTES'; -- फिर डबल कोट्स उपयोग कर सकते हैं CREATE DATABASE "1233";
लेकिन यह डबल कोट्स को स्ट्रिंग लिटरल के लिए अक्षम कर देता है।
संबंधित: टेबल/कॉलम नाम
CREATE TABLE `1233`.`mytable` (`id` INT, `select` VARCHAR(20)); SELECT `id`, `select` FROM `1233`.`mytable`;