Evita le parole chiave riservate nelle query - Amazon Athena

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Evita le parole chiave riservate nelle query

Quando si esegue le query in Athena che includono parole chiave riservate, devi racchiuderli tra caratteri speciali. Utilizza gli elenchi in questo argomento per verificare quali parole chiave sono riservate in Athena.

Per evitare le parole chiave riservate nelle DDL istruzioni, racchiudetele tra backtick (`). Per evitare le parole chiave riservate nelle SQL SELECT istruzioni e nelle query sulle viste, racchiudetele tra virgolette doppie («).

Parole chiave riservate a cui sfuggire nelle istruzioni DDL

Athena utilizza il seguente elenco di parole chiave riservate nelle sue DDL dichiarazioni. Se le utilizzi senza importare il carattere escape, Athena emette un errore. Per impostarne il carattere escape, racchiudile tra apici retroversi (`).

Non è possibile utilizzare parole chiave DDL riservate come nomi identificativi nelle DDL istruzioni senza racchiuderle tra backtick (`).

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

Parole chiave riservate a cui sfuggire nelle istruzioni SQL SELECT

Athena utilizza il seguente elenco di parole chiave riservate nelle SQL SELECT istruzioni e nelle query sulle viste.

Se si utilizzano queste parole chiave come identificatori, è necessario racchiuderle tra doppie virgolette (") nella istruzioni di query.

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

Esempi di query con parole riservate

La query nell'esempio seguente utilizza backtick (`) per evitare le parole chiave riservate DDL relative a partition e date utilizzate per il nome di una tabella e uno dei nomi di colonna:

CREATE EXTERNAL TABLE `partition` ( `date` INT, col2 STRING ) PARTITIONED BY (year STRING) STORED AS TEXTFILE LOCATION 's3://amzn-s3-demo-bucket/test_examples/';

Le seguenti query di esempio includono un nome di colonna contenente le parole chiave riservate DDL correlate nelle istruzioni and. ALTER TABLE ADD PARTITION ALTER TABLE DROP PARTITION Le parole chiave DDL riservate sono racchiuse tra backtick (`):

ALTER TABLE test_table ADD PARTITION (`date` = '2018-05-14')
ALTER TABLE test_table DROP PARTITION (`partition` = 'test_partition_value')

La seguente query di esempio include una parola chiave riservata (end) come identificatore in un'istruzione SELECT. Il carattere escape della parola chiave è impostato racchiudendola tra doppie virgolette:

SELECT * FROM TestTable WHERE "end" != nil;

La seguente query di esempio include una parola chiave riservata (first) in un'istruzione SELECT. Il carattere escape della parola chiave è impostato racchiudendola tra doppie virgolette:

SELECT "itemId"."first" FROM testTable LIMIT 10;