MySQL.RU .:. Одобрено лучшими российскими программистами

Справочное руководство по MySQL

6.1.6 ``Придирчив'' ли MySQL к зарезервированным словам?

6.1.6 ``Придирчив'' ли MySQL к зарезервированным словам?

Это общая проблема, возникающая при попытке создать таблицу с именами столбцов, использующих принятые в MySQL названия типов данных или функций, такие как TIMESTAMP или GROUP. Иногда это возможно (например, ABS является разрешенным именем для столбца), но не допускается пробел между именем функции и сразу же следующей за ним скобкой `(' при использовании имен функций, совпадающих с именами столбцов.

Следующие слова являются зарезервированными в MySQL. Большинство из них не допускаются в ANSI SQL92 как имена столбцов и/или таблиц (например GROUP). Некоторые зарезервированы для нужд MySQL и используются (в настоящее время) синтаксическим анализатором yacc:

Слово Слово Слово
ADD ALL ALTER
ANALYZE AND AS
ASC AUTO_INCREMENT BDB
BERKELEYDB BETWEEN BIGINT
BINARY BLOB BOTH
BY CASCADE CASE
CHANGE CHAR CHARACTER
COLUMN COLUMNS CONSTRAINT
CREATE CROSS CURRENT_DATE
CURRENT_TIME CURRENT_TIMESTAMP DATABASE
DATABASES DAY_HOUR DAY_MINUTE
DAY_SECOND DEC DECIMAL
DEFAULT DELAYED DELETE
DESC DESCRIBE DISTINCT
DISTINCTROW DOUBLE DROP
ELSE ENCLOSED ESCAPED
EXISTS EXPLAIN FIELDS
FLOAT FOR FOREIGN
FROM FULLTEXT FUNCTION
GRANT GROUP HAVING
HIGH_PRIORITY HOUR_MINUTE HOUR_SECOND
IF IGNORE IN
INDEX INFILE INNER
INNODB INSERT INSERT_ID
INT INTEGER INTERVAL
INTO IS JOIN
KEY KEYS KILL
LAST_INSERT_ID LEADING LEFT
LIKE LIMIT LINES
LOAD LOCK LONG
LONGBLOB LONGTEXT LOW_PRIORITY
MASTER_SERVER_ID MATCH MEDIUMBLOB
MEDIUMINT MEDIUMTEXT MIDDLEINT
MINUTE_SECOND MRG_MYISAM NATURAL
NOT NULL NUMERIC
ON OPTIMIZE OPTION
OPTIONALLY OR ORDER
OUTER OUTFILE PARTIAL
PRECISION PRIMARY PRIVILEGES
PROCEDURE PURGE READ
REAL REFERENCES REGEXP
RENAME REPLACE REQUIRE
RESTRICT RETURNS REVOKE
RIGHT RLIKE SELECT
SET SHOW SMALLINT
SONAME SQL_AUTO_IS_NULL SQL_BIG_RESULT
SQL_BIG_SELECTS SQL_BIG_TABLES SQL_BUFFER_RESULT
SQL_CALC_FOUND_ROWS SQL_LOG_BIN SQL_LOG_OFF
SQL_LOG_UPDATE SQL_LOW_PRIORITY_UPDATES SQL_MAX_JOIN_SIZE
SQL_QUOTE_SHOW_CREATE SQL_SAFE_UPDATES SQL_SELECT_LIMIT
SQL_SLAVE_SKIP_COUNTER SQL_SMALL_RESULT SQL_WARNINGS
SSL STARTING STRAIGHT_JOIN
STRIPED TABLE TABLES
TERMINATED THEN TINYBLOB
TINYINT TINYTEXT TO
TRAILING UNION UNIQUE
UNLOCK UNSIGNED UPDATE
USAGE USE USER_RESOURCES
USING VALUES VARBINARY
VARCHAR VARYING WHEN
WHERE WITH WRITE
YEAR_MONTH ZEROFILL

Следующие символы (из приведенной выше таблицы таблицы) не разрешены в ANSI SQL, но допускаются в MySQL как имена столбцов/таблиц. Это объясняется тем, что некоторые из этих имен являются словами естественного языка и уже использованы многими потребителями.

  • ACTION
  • BIT
  • DATE
  • ENUM
  • NO
  • TEXT
  • TIME
  • TIMESTAMP