Búsqueda de sitios web

¿Reparar error en la sintaxis de MySQL al crear una columna de tabla con el nombre "índice"?


No puedes usar el índice como nombre de columna porque es una palabra reservada. Para ello, debe utilizar comillas invertidas alrededor del nombre de la columna.

Si va a utilizar una palabra reservada como nombre de columna, podrá ver el siguiente error:

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

Primero creemos una tabla. Aquí, utilizamos un índice de palabras reservadas como nombre de columna, pero encerrarlo entre comillas invertidas no generará un error:

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

Inserte algunos registros en la tabla usando el comando insertar:

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)

Muestre todos los registros de la tabla usando la declaración de selección:

mysql> select *from DemoTable;

Esto producirá el siguiente resultado:

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

Artículos relacionados: