Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में आरक्षित शब्द 'index' को कॉलम नाम के रूप में उपयोग करने पर सिंटैक्स त्रुटि ठीक करें

समस्या

MySQL में INDEX एक आरक्षित शब्द (reserved word) है, इसलिए इसे सीधे कॉलम नाम के रूप में उपयोग करने पर सिंटैक्स त्रुटि होती है।

त्रुटि उदाहरण

mysql> CREATE TABLE DemoTable (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> index INT
    -> ) ENGINE=MyISAM;
ERROR 1064 (42000): You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version
for the right syntax to use near 'int )ENGINE=MyISAM' at line 4

समाधान: बैकटिक्स (`) का उपयोग करें

आरक्षित शब्द को कॉलम नाम के रूप में उपयोग करने के लिए बैकटिक्स में घेरें:

mysql> CREATE TABLE DemoTable (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> `index` INT
    -> ) ENGINE=MyISAM;
Query OK, 0 rows affected (0.28 sec)

डेटा डालना और देखना

mysql> INSERT INTO DemoTable(`index`) VALUES(4);
Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable(`index`) VALUES(8);
Query OK, 1 row affected (0.07 sec)
mysql> INSERT INTO DemoTable(`index`) VALUES(12);
Query OK, 1 row affected (0.06 sec)

mysql> SELECT * FROM DemoTable;

आउटपुट:

+----+-------+
| Id | index |
+----+-------+
| 1  | 4     |
| 2  | 8     |
| 3  | 12    |
+----+-------+
3 rows in set (0.00 sec)

नियम: पहचानकर्ताओं के लिए बैकटिक्स

  • टेबल नाम, कॉलम नाम, इंडेक्स नाम, एलियास के लिए बैकटिक्स उपयोग करें
  • आरक्षित शब्दों (INDEX, ORDER, GROUP, SELECT, आदि) के लिए अनिवार्य
  • विशेष वर्ण या स्पेस वाले नामों के लिए अनिवार्य
  • सर्वोत्तम अभ्यास: हमेशा पहचानकर्ताओं के लिए बैकटिक्स उपयोग करें

सामान्य आरक्षित शब्द (आंशिक सूची)

INDEX, KEY, PRIMARY, UNIQUE, FOREIGN, REFERENCES,
ORDER, GROUP, BY, SELECT, INSERT, UPDATE, DELETE,
WHERE, FROM, JOIN, LEFT, RIGHT, INNER, OUTER,
TABLE, DATABASE, CREATE, ALTER, DROP, TRUNCATE,
INT, VARCHAR, TEXT, DATE, TIME, DATETIME, ...

सुझाव

आरक्षित शब्दों को कॉलम नाम के रूप में उपयोग करने से बचें। बजाय index के, idx, sort_order, position जैसे वर्णनात्मक नाम उपयोग करें।

  1. - MySQL में WHERE IN के साथ FIELD() फ़ंक्शन का उपयोग करके कस्टम ऑर्डर कैसे करें?

    WHERE id IN(...) के साथ किसी विशेष कॉलम के अनुसार ऑर्डर करने के लिए FIELD() फ़ंक्शन का उपयोग करें। सिंटैक्स SELECT * FROM yourTableName WHERE yourColumnName IN(value1, value2, ... N) ORDER BY FIELD(yourColumnName, value1, value2, ... N); उदाहरण के साथ समझें सबसे पहले एक टेबल बनाते हैं: ); Que

  1. Java में MySQL ResultSet से कॉलम नाम कैसे प्राप्त करें? Java में MySQL ResultSet से कॉलम नाम कैसे प्राप्त करें?

    ResultSetMetaData.getMetaData() का उपयोग करें JDBC में ResultSet से कॉलम नाम प्राप्त करने के लिए getMetaData() मेथड को कॉल करें जो ResultSetMetaData ऑब्जेक्ट लौटाता है। प्रोटोटाइप ResultSetMetaData getMetaData() throws SQLException; मुख्य मेथड्स getColumnCount() — कॉलम की संख्या। getColumnLabel(

  1. MySQL - Hibernate के साथ टेबल बनाना MySQL - Hibernate के साथ टेबल बनाना

    टेबल बनाने के लिए, आपको application.properties में नीचे दी गई लाइन डालनी होगी: spring.jpa.hibernate.ddl-auto=update यहां, Hibernate स्वचालित रूप से demo88 टेबल बनाएगा। application.properties कोड इस प्रकार है: spring.datasource.platform=mysql spring.jpa.database-platform=org.hibernate.dialect.MySQL