MySQL में रिजर्व्ड कीवर्ड (जैसे INSERT, ADD, KEY, LIKE) को टेबल या कॉलम नाम के रूप में उपयोग करने के लिए बैकटिक (`) का उपयोग करें।
समस्या: रिजर्व्ड वर्ड बिना बैकटिक के
केस 1: टेबल नाम के रूप में
mysql> create table insert (Id int);
ERROR 1064 (42000): You have an error in your SQL syntax... near 'insert (Id int)'
केस 2: कॉलम नाम के रूप में
mysql> create table Customers (Add int);
ERROR 1064 (42000): You have an error in your SQL syntax... near 'Add int)'
समाधान: बैकटिक (`) उपयोग करें
mysql> create table `Insert` (`Add` int); Query OK, 0 rows affected (0.59 sec)
सामान्य MySQL रिजर्व्ड कीवर्ड
ADD, ALL, ALTER, ANALYZE, AND, AS, ASC, BEFORE, BETWEEN, BIGINT, BINARY, BLOB, BOTH, BY, CALL, CASCADE, CASE, CHANGE, CHAR, CHARACTER, CHECK, COLLATE, COLUMN, CONSTRAINT, CREATE, CROSS, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, DATABASE, DATABASES, DAY_HOUR, DAY_MICROSECOND, DAY_MINUTE, DAY_SECOND, DEC, DECIMAL, DECLARE, DEFAULT, DELAYED, DELETE, DESC, DESCRIBE, DISTINCT, DISTINCTROW, DIV, DOUBLE, DROP, DUAL, EACH, ELSE, ENCLOSED, ESCAPED, EXISTS, EXPLAIN, FALSE, FIELDS, FLOAT, FLOAT4, FLOAT8, FOR, FORCE, FOREIGN, FROM, FULLTEXT, GRANT, GROUP, HAVING, HIGH_PRIORITY, HOUR_MICROSECOND, HOUR_MINUTE, HOUR_SECOND, IF, IGNORE, IN, INDEX, INFILE, INNER, INNO DB, INSERT, INT, INT1, INT2, INT3, INT4, INT8, INTEGER, INTERVAL, INTO, IS, ITERATE, JOIN, KEY, KEYS, KILL, LEADING, LEAVE, LEFT, LIKE, LIMIT, LINEAR, LINES, LOAD, LOCALTIME, LOCALTIMESTAMP, LOCK, LONG, LONGBLOB, LONGTEXT, LOOP, LOW_PRIORITY, MASTER_BIND, MASTER_SSL_VERIFY_SERVER_CERT, MATCH, MAXVALUE, MEDIUMBLOB, MEDIUMINT, MEDIUMTEXT, MIDDLEINT, MINUTE_MICROSECOND, MINUTE_SECOND, MOD, MODIFIES, NATURAL, NOT, NO_WRITE_TO_BINLOG, NULL, NUMERIC, ON, OPTIMIZE, OPTION, OPTIONALLY, OR, ORDER, OUT, OUTER, OUTFILE, PRECISION, PRIMARY, PROCEDURE, PURGE, RANGE, READ, READS, REAL, REFERENCES, REGEXP, RELEASE, RENAME, REPEAT, REPLACE, REQUIRE, RESTRICT, RETURN, REVOKE, RIGHT, ROLLBACK, ROW, ROWS, SCHEMA, SCHEMAS, SECOND_MICROSECOND, SELECT, SENSITIVE, SEPARATOR, SET, SHOW, SMALLINT, SPATIAL, SPECIFIC, SQL, SQLEXCEPTION, SQLSTATE, SQLWARNING, SQL_BIG_RESULT, SQL_CALC_FOUND_ROWS, SQL_SMALL_RESULT, SSL, STARTING, STRAIGHT_JOIN, TABLE, TERMINATED, THEN, TINYBLOB, TINYINT, TINYTEXT, TO, TRAILING, TRIGGER, TRUE, UNDO, UNION, UNIQUE, UNLOCK, UNSIGNED, UPDATE, USAGE, USE, USING, UTC_DATE, UTC_TIME, UTC_TIMESTAMP, VALUES, VARBINARY, VARCHAR, VARCHARACTER, VARYING, WHEN, WHERE, WHILE, WITH, WRITE, XOR, YEAR_MONTH, ZEROFILL
पूर्ण सूची
आधिकारिक सूची: MySQL Reserved Keywords
सर्वोत्तम अभ्यास
- रिजर्व्ड वर्ड से बचें — अर्थपूर्ण, गैर-रिजर्व्ड नाम चुनें
- बैकटिक हमेशा उपयोग करें — सभी पहचानकर्ताओं के लिए (`table`, `column`) — यह सुरक्षित है
- नामकरण परंपरा — स्नेक_केस उपयोग करें:
user_id,order_date,is_active - उपसर्ग/प्रत्यय — रिजर्व्ड वर्ड से बचने के लिए:
insert_timeबजायinsert,key_idबजायkey
बैकटिक के साथ उदाहरण
CREATE TABLE `order` ( `id` INT PRIMARY KEY, `key` VARCHAR(50), `group` INT, `select` DATE, `from` VARCHAR(100) ); INSERT INTO `order` (`id`, `key`, `group`, `select`, `from`) VALUES (1, 'test', 1, '2024-01-01', 'source'); SELECT `id`, `key`, `group` FROM `order` WHERE `select` > '2023-01-01';