Aplicación de caracteres de escape a las palabras clave reservadas de las consultas
Cuando se ejecutan consultas en Athena que incluyen palabras clave reservadas, debe aplicarles escape delimitándolas con caracteres especiales. Utilice las listas de este tema para verificar qué palabras clave están reservadas en Athena.
Para entrecomillar las palabras reservadas en instrucciones DDL, utilice acentos graves (`) como carácter de escape. Para entrecomillar palabras reservadas en instrucciones SQL SELECT
y en consultas en vistas, utilice dobles comillas (“”) como carácter de escape.
Palabras clave reservadas para incluir en las instrucciones DDL en caracteres de escape
Athena utiliza la siguiente lista de palabras clave reservadas en sus instrucciones DDL. Si las utiliza sin aplicarles escape, Athena emite un error. Para entrecomillarlas, utilice el acento grave (') como carácter de escape.
No puede utilizar palabras clave reservadas de DDL como nombres de identificadores en instrucciones DDL sin entrecomillarlas con acentos graves (`).
ALL, ALTER, AND, ARRAY, AS, AUTHORIZATION, BETWEEN, BIGINT, BINARY, BOOLEAN, BOTH, BY, CASE, CASHE, CAST, CHAR, COLUMN, CONF, CONSTRAINT, COMMIT, CREATE, CROSS, CUBE, CURRENT, CURRENT_DATE, CURRENT_TIMESTAMP, CURSOR, DATABASE, DATE, DAYOFWEEK, DECIMAL, DELETE, DESCRIBE, DISTINCT, DIV, DOUBLE, DROP, ELSE, END, EXCHANGE, EXISTS, EXTENDED, EXTERNAL, EXTRACT, FALSE, FETCH, FLOAT, FLOOR, FOLLOWING, FOR, FOREIGN, FROM, FULL, FUNCTION, GRANT, GROUP, GROUPING, HAVING, IF, IMPORT, IN, INNER, INSERT, INT, INTEGER, INTERSECT, INTERVAL, INTO, IS, JOIN, LATERAL, LEFT, LESS, LIKE, LOCAL, MACRO, MAP, MORE, NONE, NOT, NULL, NUMERIC, OF, ON, ONLY, OR, ORDER, OUT, OUTER, OVER, PARTIALSCAN, PARTITION, PERCENT, PRECEDING, PRECISION, PRESERVE, PRIMARY, PROCEDURE, RANGE, READS, REDUCE, REGEXP, REFERENCES, REVOKE, RIGHT, RLIKE, ROLLBACK, ROLLUP, ROW, ROWS, SELECT, SET, SMALLINT, START,TABLE, TABLESAMPLE, THEN, TIME, TIMESTAMP, TO, TRANSFORM, TRIGGER, TRUE, TRUNCATE, UNBOUNDED,UNION, UNIQUEJOIN, UPDATE, USER, USING, UTC_TIMESTAMP, VALUES, VARCHAR, VIEWS, WHEN, WHERE, WINDOW, WITH
Palabras reservadas para incluir en las instrucciones SQL SELECT
Athena utiliza la siguiente lista de palabras clave reservadas en las instrucciones SQL SELECT
y en las consultas de vistas.
Si utiliza estas palabras clave como identificadores, debe entrecomillarlas con comillas dobles (") en las instrucciones de la consulta.
ALTER, AND, AS, BETWEEN, BY, CASE, CAST, CONSTRAINT, CREATE, CROSS, CUBE, CURRENT_CATALOG, CURRENT_DATE, CURRENT_PATH, CURRENT_SCHEMA, CURRENT_TIME, CURRENT_TIMESTAMP, CURRENT_USER, DEALLOCATE, DELETE, DESCRIBE, DISTINCT, DROP, ELSE, END, ESCAPE, EXCEPT, EXECUTE, EXISTS, EXTRACT, FALSE, FIRST, FOR, FROM, FULL, GROUP, GROUPING, HAVING, IN, INNER, INSERT, INTERSECT, INTO, IS, JOIN, JSON_ARRAY, JSON_EXISTS, JSON_OBJECT, JSON_QUERY, JSON_TABLE, JSON_VALUE, LAST, LEFT, LIKE, LISTAGG, LOCALTIME, LOCALTIMESTAMP, NATURAL, NORMALIZE, NOT, NULL, OF, ON, OR, ORDER, OUTER, PREPARE, RECURSIVE, RIGHT, ROLLUP, SELECT, SKIP, TABLE, THEN, TRIM, TRUE, UESCAPE, UNION, UNNEST, USING, VALUES, WHEN, WHERE, WITH
Ejemplos de consultas con palabras reservadas
La consulta del siguiente ejemplo utiliza acentos graves (`) para aplicar escape a las palabras clave reservadas relacionadas con DDL partition y date que se utilizan para un nombre de tabla y uno de los nombres de las columnas:
CREATE EXTERNAL TABLE
`partition`
(`date`
INT, col2 STRING ) PARTITIONED BY (year STRING) STORED AS TEXTFILE LOCATION 's3://amzn-s3-demo-bucket/test_examples/';
Las consultas del siguiente ejemplo incluyen un nombre de columna que contiene las palabras clave reservadas relacionadas con DDL en instrucciones ALTER TABLE ADD PARTITION
y ALTER TABLE DROP
PARTITION
. Las palabras clave reservadas de DDL se encierran en acentos graves (`):
ALTER TABLE test_table ADD PARTITION (
`date`
= '2018-05-14')
ALTER TABLE test_table DROP PARTITION (
`partition`
= 'test_partition_value')
La siguiente consulta de ejemplo incluye una palabra clave reservada (fin) como identificador en una instrucción SELECT
. Se aplica escape a la palabra clave con comillas dobles:
SELECT * FROM TestTable WHERE "end" != nil;
La siguiente consulta de ejemplo incluye una palabra clave reservada (primera) en una instrucción SELECT
. Se aplica escape a la palabra clave con comillas dobles:
SELECT "itemId"."first" FROM testTable LIMIT 10;