Spec-Zone .ru
спецификации, руководства, описания, API
|
Определенные слова такой как SELECT
, DELETE
,
или BIGINT
резервируются и требуют специального режима для использования в
качестве идентификаторов, таких как имена таблиц и имена столбцов. Это может также быть истиной для имен
встроенных функций.
Зарезервированные слова разрешаются как идентификаторы, если Вы заключаете им в кавычки как описано в Разделе 9.2, "Имена объектов Схемы":
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)
Исключение: слово, которое следует за периодом на полностью определенное имя, должно быть идентификатором, таким образом, оно не должно быть заключено в кавычки, даже если оно резервируется:
mysql> CREATE TABLE mydb.interval (begin INT, end
INT);
Query OK, 0 rows affected (0.01 sec)
Имена встроенных функций разрешаются как идентификаторы, но могут потребовать, чтобы забота использовалась как
таковая. Например, COUNT
является приемлемым как имя столбца. Однако, по умолчанию,
никакой пробел не разрешается в вызовах функции между именем функции и следующим"(
"символ. Это требование позволяет
синтаксическому анализатору различить, используется ли имя в вызове функции или в нефункциональном контексте.
Для дальнейшей детали о распознавании имен функций см. Раздел
9.2.4, "Парсинг имени функции и Разрешение".
Слова в следующей таблице явно резервируются в MySQL 5.6. Кроме того, _FILENAME
резервируется. В некоторый момент Вы могли бы обновить до более высокой версии, таким образом, это - хорошая
идея взглянуть на будущие зарезервированные слова, также. Можно найти их в руководствах, которые касаются более
высоких версий MySQL. Большинство слов в таблице запрещается стандартным SQL как имена столбцов или имена таблиц
(например, GROUP
). Некоторые резервируются, потому что MySQL нуждается в них и
использует yacc синтаксический анализатор. Зарезервированное слово
может использоваться в качестве идентификатора, если Вы заключаете его в кавычки.
Для более подробного списка зарезервированных слов, включая различия между версиями, см.
Таблица 9.2. Зарезервированные слова в 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 |
Таблица 9.3. Новые Зарезервированные слова в MySQL 5.6
GET |
IO_AFTER_GTIDS |
IO_BEFORE_GTIDS |
MASTER_BIND |
ONE_SHOT |
PARTITION |
SQL_AFTER_GTIDS |
SQL_BEFORE_GTIDS |
MySQL разрешает некоторым ключевым словам использоваться в качестве закрывших кавычки идентификаторов потому что много людей, ранее используемых их. Примеры - те в следующем списке: