Este apéndice es una traducción del manual de MySQL.
Un problema frecuente se deriva del intento de usar como
identificador de una tabla o columna un nombre que se usa internamente
por MySQL como nombre de dato o función, como TIMESTAMP o GROUP.
Está permitido hacer esto (por ejemplo, ABS está permitido como
nombre de columna). Sin embargo, por defecto, no se permiten espacios en blanco
en las llamadas a función entre el nombre de la función y el paréntesis '('. Esta
característica permite distinguir una llamada a función de una referencia a un
nombre de columna.
Un efecto secundario de este comportamiento es que la
omisión de un espacio en algunos contextos haga que un identificador sea
interpretado como un nombre de función. Por ejemplo, esta sentencia es legal:
mysql> CREATE TABLE abs (val INT);
Pero si se omite el espacio después de 'abs' se produce un
error de sintaxis porque entonces la sentencia parece que invoque a la
función ABS():
mysql> CREATE TABLE abs(val INT);
Si el modo del servidor SQL incluye el valor de modo
IGNORE_SPACE, el servidor permite que las llamadas a función puedan tener
espacios entre el nombre de la función y el paréntesis. Esto hace que los
nombres de la funciones se traten con palabras reservadas. Como resultado, los
identificadores que sean iguales que nombres de funciones deben ser
entrecomillados como se describe en el apéndice reglas para nombres.
Las palabras de la tabla siguiente son palabras reservadas
explícitamente en MySQL. Muchas de ellas están prohibidas por SQL estándar
como nombres de columna y/o tabla (por ejemplo, GROUP). Algunas son reservadas
porque MySQL las necesita y (frecuentemente) usa un analizador
sintáctico yacc. Una palabra reservada puede usarse como identificador si
se entrecomilla.
Palabra
|
Palabra
|
Palabra
|
ADD
|
ALL
|
ALTER
|
ANALYZE
|
AND
|
AS
|
ASC
|
ASENSITIVE
|
BEFORE
|
BETWEEN
|
BIGINT
|
BINARY
|
BLOB
|
BOTH
|
BY
|
CALL
|
CASCADE
|
CASE
|
CHANGE
|
CHAR
|
CHARACTER
|
CHECK
|
COLLATE
|
COLUMN
|
CONDITION
|
CONNECTION
|
CONSTRAINT
|
CONTINUE
|
CONVERT
|
CREATE
|
CROSS
|
CURRENT_DATE
|
CURRENT_TIME
|
CURRENT_TIMESTAMP
|
CURRENT_USER
|
CURSOR
|
DATABASE
|
DATABASES
|
DAY_HOUR
|
DAY_MICROSECOND
|
DAY_MINUTE
|
DAY_SECOND
|
DEC
|
DECIMAL
|
DECLARE
|
DEFAULT
|
DELAYED
|
DELETE
|
DESC
|
DESCRIBE
|
DETERMINISTIC
|
DISTINCT
|
DISTINCTROW
|
DIV
|
DOUBLE
|
DROP
|
DUAL
|
EACH
|
ELSE
|
ELSEIF
|
ENCLOSED
|
ESCAPED
|
EXISTS
|
EXIT
|
EXPLAIN
|
FALSE
|
FETCH
|
FLOAT
|
FOR
|
FORCE
|
FOREIGN
|
FROM
|
FULLTEXT
|
GOTO
|
GRANT
|
GROUP
|
HAVING
|
HIGH_PRIORITY
|
HOUR_MICROSECOND
|
HOUR_MINUTE
|
HOUR_SECOND
|
IF
|
IGNORE
|
IN
|
INDEX
|
INFILE
|
INNER
|
INOUT
|
INSENSITIVE
|
INSERT
|
INT
|
INTEGER
|
INTERVAL
|
INTO
|
IS
|
ITERATE
|
JOIN
|
KEY
|
KEYS
|
KILL
|
LEADING
|
LEAVE
|
LEFT
|
LIKE
|
LIMIT
|
LINES
|
LOAD
|
LOCALTIME
|
LOCALTIMESTAMP
|
LOCK
|
LONG
|
LONGBLOB
|
LONGTEXT
|
LOOP
|
LOW_PRIORITY
|
MATCH
|
MEDIUMBLOB
|
MEDIUMINT
|
MEDIUMTEXT
|
MIDDLEINT
|
MINUTE_MICROSECOND
|
MINUTE_SECOND
|
MOD
|
MODIFIES
|
NATURAL
|
NOT
|
NO_WRITE_TO_BINLOG
|
NULL
|
NUMERIC
|
ON
|
OPTIMIZE
|
OPTION
|
OPTIONALLY
|
OR
|
ORDER
|
OUT
|
OUTER
|
OUTFILE
|
PRECISION
|
PRIMARY
|
PROCEDURE
|
PURGE
|
READ
|
READS
|
REAL
|
REFERENCES
|
REGEXP
|
RENAME
|
REPEAT
|
REPLACE
|
REQUIRE
|
RESTRICT
|
RETURN
|
REVOKE
|
RIGHT
|
RLIKE
|
SCHEMA
|
SCHEMAS
|
SECOND_MICROSECOND
|
SELECT
|
SENSITIVE
|
SEPARATOR
|
SET
|
SHOW
|
SMALLINT
|
SONAME
|
SPATIA
|
SPECIFIC
|
SQL
|
SQLEXCEPTION
|
SQLSTATE
|
SQLWARNING
|
SQL_BIG_RESULT
|
SQL_CALC_FOUND_ROWS
|
SQL_SMALL_RESULT
|
SSL
|
STARTING
|
STRAIGHT_JOIN
|
TABLE
|
TERMINATED
|
THEN
|
TINYBLOB
|
TINYINT
|
TINYTEXT
|
TO
|
TRAILING
|
TRIGGER
|
TRUE
|
UNDO
|
UNION
|
UNIQUE
|
UNLOCK
|
UNSIGNED
|
UPDATE
|
USAGE
|
USE
|
USING
|
UTC_DATE
|
UTC_TIME
|
UTC_TIMESTAMP
|
VALUES
|
VARBINARY
|
VARCHAR
|
VARCHARACTER
|
VARYING
|
WHEN
|
WHERE
|
WHILE
|
WITH
|
WRITE
|
XOR
|
YEAR_MONTH
|
ZEROFILL
|
MySQL permite que algunas palabras reservadas sean
usadas como identificadores sin entrecomillar porque mucha gente ya las usa.
Ejemplos de esas palabras son las siguientes:
ACTION
|
BIT
|
DATE
|
ENUM
|
NO
|
TEXT
|
TIME
|
TIMESTAMP
|
No hay comentarios:
Publicar un comentario