Esta pregunta ya tiene respuesta aquí:
Error de sintaxis debido al uso de una palabra reservada como nombre de tabla o columna en MySQL
(1 respuesta)
Cerrado
hace 2 años
.
Recibo un error de sintaxis de creación de tabla en MySQL y espero que alguien pueda detectarlo antes de que pierda la cordura.
create table buyer_representations (
Key int not null auto_increment,
Client_ID int not null,
Start_Time varchar(5),
Start_Date date,
End_Date date,
Property_Type varchar(255),
Geographic_Location varchar(255),
Commission varchar(255),
Alternate_Commission varchar(255),
Lease_Commission varchar(255),
Holdover varchar(255),
Clauses varchar(2000),
primary key (Key)
);
ERROR 1064 (42000): Tiene un error en su sintaxis SQL;consulte el manual que corresponde a la versión de su servidor MySQL para conocer la sintaxis correcta a utilizar cerca de 'int not null auto_increment,
client_ID int no nulo,
Hora_inicio varchar(5),
Estrella' en la línea 2
mysql Ver 14.14 Distrib 5.7.29, para Linux (x86_64) usando el contenedor EditLine
Intenté agregar 'clave principal' al final de la línea 2, así como un valor predeterminado, y cambiar 'no nulo' por 'auto_increment'... pero nada funciona.
Editar:
También intenté cambiar Key a KeyId y poner Key entre comillas... pero el error sigue siendo el mismo.
Edición final:
poner la clave entre comillas finalmente funcionó
create table buyer_representations (
`Key` int not null auto_increment,
Client_ID int not null,
Start_Time varchar(5),
Start_Date date,
End_Date date,
Property_Type varchar(255),
Geographic_Location varchar(255),
Commission varchar(255),
Alternate_Commission varchar(255),
Lease_Commission varchar(255),
Holdover varchar(255),
Clauses varchar(2000),
primary key (`Key`)
);
1
La clave es una palabra clave de MySQL y no puede (o no debe) usarse para nombres de tablas/columnas. Utilice un nombre diferente.
-Progman
27/03/2021 a las 14:35
Edite su pregunta para incluir la nueva consulta que está ejecutando y el mensaje de error completo que recibe ahora con la consulta modificada.
-Progman
27/03/2021 a las 14:55
Ambas consultas agregadas con Key entre comillas y la que usa el nombre KeyId funcionan perfectamente. Parece que todavía estás ejecutando la consulta anterior cuando sigues apareciendo el mismo mensaje de error.
-Progman
27/03/2021 a las 15:14
------------------------------------
La clave es una palabra clave de reserva, cámbiele el nombre y debería estar dorado.
Puede encontrar una lista completa de palabras clave y palabras reservadas en la sección 10.3 Palabras clave y palabras reservadas. Abajo
https://dev.mysql.com/doc/refman/8.0/en/keywords.html
en su caso, esto debería funcionar (lo llamo prueba, pero le cambio el nombre a cualquierse adapta a su situación)
create table buyer_representations (
test int not null auto_increment,
Client_ID int not null,
Start_Time varchar(5),
Start_Date date,
End_Date date,
Property_Type varchar(255),
Geographic_Location varchar(255),
Commission varchar(255),
Alternate_Commission varchar(255),
Lease_Commission varchar(255),
Holdover varchar(255),
Clauses varchar(2000),
primary key (test)
);
4
Intenté cambiar el nombre de Key a KeyId, pero sigo apareciendo el mismo error. ¿Mysql no incluiría la clave como parte del mensaje de error si ese fuera el problema?
-ak1por ciento
27/03/2021 a las 14:53
jajaja, si tan solo Mysql fuera tan genial, ¿eh? ¿También cambiaste el nombre de tu principal?clave?
- masticable
27/03/2021 a las 14:55
Utilice lo que acabo de actualizar como ejemplo. Eso debería funcionar.
- masticable
27/03/2021 a las 15:00
Eso funcionó. Gracias. Muy apreciado.
-ak1por ciento
27/03/2021 a las 15:13
------------------------------------
El problema es el nombre de la columna que ha utilizado en su tabla.
El nombre de la primera columna es Clave.
La clave se considera una palabra reservada en Mysql y tiene un significado especial. Por eso hay un error.
Si desea utilizar el mismo nombre de columna, puede hacerlo escribiendo el nombre de la columna dentro de ``.
Por ej.
crear tabla representaciones_comprador (
`Key` int no nulo auto_increment,
Esto funcionará bien.
3
Gracias por el consejo. Intenté agregar las comillas, pero aún asíRecibirás el mismo error.
-ak1por ciento
27/03/2021 a las 14:54
Es posible que esté utilizando ' ' estos como las comillas. Más bien tienes que usar ` ` entre comillas. Este símbolo ` está presente en el lado izquierdo del número 1 en el teclado qwerty.
- IMPERIO
27/03/2021 a las 15:04
Aplique esto también en la sección de clave principal, ya que tiene Clave como clave principal para su tabla. Debería funcionar
- IMPERIO
27/03/2021 a las 15:07