Error de PostgreSQL: syntax error at or near
ERROR: syntax error at or near "order"
LINE 1: SELECT * FROM order;
^
El parser topó con un token que no encajaba en ningún SQL válido y se detuvo. Un consejo de lectura lo cambia todo: el cursor marca dónde se rindió el parseo, que está en el error real o justo después — mira el token señalado y los pocos anteriores.
Qué significa este error
Esto es un error de gramática puro: la sentencia nunca llegó a buscar tablas o columnas. El token entrecomillado del mensaje es donde se rompió la gramática. En el ejemplo, order es una palabra reservada (como en ORDER BY), así que una tabla con ese nombre no puede aparecer sin comillas — el parser la lee como la palabra clave y falla.
Causas comunes
- Palabras reservadas como identificadores:
order,group,limit,where… como nombres de tabla o columna, sin comillas. - Sintaxis de MySQL: backticks alrededor de identificadores (
`users`),LIMIT 10, 20,AUTO_INCREMENT— todos errores de sintaxis en PostgreSQL. - Puntuación faltante o de más: una coma antes de
FROM, paréntesis desbalanceados, una coma suelta tras la última columna. - Placeholders ejecutados literalmente: ejecutar
WHERE id = $1en psql sin proporcionar parámetros. - Comillas tipográficas pegadas desde herramientas de chat o documentos:
’y“no son comillas de SQL.
Cómo diagnosticarlo
- Lee el token del error y los pocos tokens anteriores al cursor — el error vive ahí.
- Si el SQL es generado o plantillado, imprime la sentencia final y ejecútala en psql; los errores de sintaxis son mucho más fáciles de ver en el texto ensamblado que en la plantilla.
- ¿Identificador sospechoso? Comprueba si es reservado — entrecomillarlo (
"order") como experimento lo zanja al instante.
Cómo solucionarlo
- Palabra reservada → entrecomíllala (
SELECT * FROM "order") — y considera renombrar la tabla; toda consulta futura te lo agradecerá. - Mysqlismos → traduce: comillas dobles (o nada) en vez de backticks,
LIMIT 20 OFFSET 10,GENERATED ALWAYS AS IDENTITYen vez deAUTO_INCREMENT. - Comillas tipográficas → reescribe las comillas en un editor de verdad.
🔍
El siguiente error que encontrarás tras arreglar este: column does not exist — reglas de comillas y mayúsculas/minúsculas para identificadores.
