Spec-Zone .ru
спецификации, руководства, описания, API
|
Certain words such as SELECT
, DELETE
,
or BIGINT
are reserved and require special treatment for use as identifiers such
as table and column names. This may also be true for the names of built-in functions.
Reserved words are permitted as identifiers if you quote them as described in Section 9.2, "Schema Object Names":
mysql>CREATE TABLE interval (begin INT, end INT);
ERROR 1064 (42000): You have an error in your SQL syntax ...near 'interval (begin INT, end INT)'mysql>CREATE TABLE `interval` (begin INT, end INT);
Query OK, 0 rows affected (0.01 sec)
Exception: A word that follows a period in a qualified name must be an identifier, so it need not be quoted even if it is reserved:
mysql> CREATE TABLE mydb.interval (begin INT, end
INT);
Query OK, 0 rows affected (0.01 sec)
Names of built-in functions are permitted as identifiers but may require care to be used as such. For example,
COUNT
is acceptable as a column name. However, by default, no whitespace is
permitted in function invocations between the function name and the following "(
" character. This requirement enables the
parser to distinguish whether the name is used in a function call or in nonfunction context. For further detail
on recognition of function names, see Section 9.2.4,
"Function Name Parsing and Resolution".
The words in the following table are explicitly reserved in MySQL 5.6. In addition, _FILENAME
is reserved. At some point, you might upgrade to a higher version, so it is a good idea to have a look at future
reserved words, too. You can find these in the manuals that cover higher versions of MySQL. Most of the words in
the table are forbidden by standard SQL as column or table names (for example, GROUP
). A few are reserved because MySQL needs them and uses a yacc parser. A reserved word can be used as an identifier if you
quote it.
For a more detailed list of reserved words, including differences between versions, see
Table 9.2. Reserved Words in MySQL 5.6.13
ACCESSIBLE |
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 |
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 |
FLOAT4 |
FLOAT8 |
FOR |
FORCE |
FOREIGN |
FROM |
FULLTEXT |
GET |
GRANT |
GROUP |
HAVING |
HIGH_PRIORITY |
HOUR_MICROSECOND |
HOUR_MINUTE |
HOUR_SECOND |
IF |
IGNORE |
IN |
INDEX |
INFILE |
INNER |
INOUT |
INSENSITIVE |
INSERT |
INT |
INT1 |
INT2 |
INT3 |
INT4 |
INT8 |
INTEGER |
INTERVAL |
INTO |
IO_AFTER_GTIDS |
IO_BEFORE_GTIDS |
IS |
ITERATE |
JOIN |
KEY |
KEYS |
KILL |
LEADING |
LEAVE |
LEFT |
LIKE |
LIMIT |
LINEAR |
LINES |
LOAD |
LOCALTIME |
LOCALTIMESTAMP |
LOCK |
LONG |
LONGBLOB |
LONGTEXT |
LOOP |
LOW_PRIORITY |
MASTER_BIND |
MASTER_SSL_VERIFY_SERVER_CERT |
MATCH |
MAXVALUE |
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 |
PARTITION |
PRECISION |
PRIMARY |
PROCEDURE |
PURGE |
RANGE |
READ |
READS |
READ_WRITE |
REAL |
REFERENCES |
REGEXP |
RELEASE |
RENAME |
REPEAT |
REPLACE |
REQUIRE |
RESIGNAL |
RESTRICT |
RETURN |
REVOKE |
RIGHT |
RLIKE |
SCHEMA |
SCHEMAS |
SECOND_MICROSECOND |
SELECT |
SENSITIVE |
SEPARATOR |
SET |
SHOW |
SIGNAL |
SMALLINT |
SPATIAL |
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 |
Table 9.3. New Reserved Words in MySQL 5.6
GET |
IO_AFTER_GTIDS |
IO_BEFORE_GTIDS |
MASTER_BIND |
ONE_SHOT |
PARTITION |
SQL_AFTER_GTIDS |
SQL_BEFORE_GTIDS |
MySQL permits some keywords to be used as unquoted identifiers because many people previously used them. Examples are those in the following list: