Это общая проблема, возникающая
при попытке создать таблицу с
именами столбцов, использующих
принятые в MySQL названия типов
данных или функций, такие как
TIMESTAMP или GROUP.
Иногда это возможно (например,
ABS является разрешенным
именем для столбца), но не
допускается пробел между именем
функции и сразу же следующей за ним
скобкой ‘(’ при
использовании имен функций,
совпадающих с именами столбцов.
Следующие слова являются
зарезервированными в MySQL.
Большинство из них не допускаются
в ANSI SQL92 как имена столбцов и/или
таблиц (например GROUP). Некоторые
зарезервированы для нужд MySQL и
используются (в настоящее время)
синтаксическим анализатором
yacc:
| ADD | ALL | ALTER |
| ANALYZE | AND | AS |
| ASC | BEFORE | BETWEEN |
| BIGINT | BINARY | BLOB |
| BOTH | BY | CASCADE |
| CASE | CHANGE | CHAR |
| CHARACTER | CHECK | COLLATE |
| COLUMN | COLUMNS | CONSTRAINT |
| CONVERT | CREATE | CROSS |
| CURRENT_DATE | CURRENT_TIME | CURRENT_TIMESTAMP |
| CURRENT_USER | DATABASE | DATABASES |
| DAY_HOUR | DAY_MICROSECOND | DAY_MINUTE |
| DAY_SECOND | DEC | DECIMAL |
| DEFAULT | DELAYED | DELETE |
| DESC | DESCRIBE | DISTINCT |
| DISTINCTROW | DIV | DOUBLE |
| DROP | DUAL | ELSE |
| ENCLOSED | ESCAPED | EXISTS |
| EXPLAIN | FALSE | FIELDS |
| FLOAT | FLOAT4 | FLOAT8 |
| FOR | FORCE | FOREIGN |
| FROM | FULLTEXT | GRANT |
| GROUP | HAVING | HIGH_PRIORITY |
| HOUR_MICROSECOND | HOUR_MINUTE | HOUR_SECOND |
| IF | IGNORE | IN |
| INDEX | INFILE | INNER |
| INSERT | INT | INT1 |
| INT2 | INT3 | INT4 |
| INT8 | INTEGER | INTERVAL |
| INTO | IS | JOIN |
| KEY | KEYS | KILL |
| LEADING | LEFT | LIKE |
| LIMIT | LINES | LOAD |
| LOCALTIME | LOCALTIMESTAMP | LOCK |
| LONG | LONGBLOB | LONGTEXT |
| LOW_PRIORITY | MATCH | MEDIUMBLOB |
| MEDIUMINT | MEDIUMTEXT | MIDDLEINT |
| MINUTE_MICROSECOND | MINUTE_SECOND | MOD |
| NATURAL | NOT | NO_WRITE_TO_BINLOG |
| NULL | NUMERIC | ON |
| OPTIMIZE | OPTION | OPTIONALLY |
| OR | ORDER | OUTER |
| OUTFILE | PRECISION | PRIMARY |
| PRIVILEGES | PROCEDURE | PURGE |
| RAID0 | READ | REAL |
| REFERENCES | REGEXP | RENAME |
| REPLACE | REQUIRE | RESTRICT |
| REVOKE | RIGHT | RLIKE |
| SECOND_MICROSECOND | SELECT | SEPARATOR |
| SET | SHOW | SMALLINT |
| SONAME | SPATIAL | SQL_BIG_RESULT |
| SQL_CALC_FOUND_ROWS | SQL_SMALL_RESULT | SSL |
| STARTING | STRAIGHT_JOIN | TABLE |
| TABLES | TERMINATED | THEN |
| TINYBLOB | TINYINT | TINYTEXT |
| TO | TRAILING | TRUE |
| UNION | UNIQUE | UNLOCK |
| UNSIGNED | UPDATE | USAGE |
| USE | USING | UTC_DATE |
| UTC_TIME | UTC_TIMESTAMP | VALUES |
| VARBINARY | VARCHAR | VARCHARACTER |
| VARYING | WHEN | WHERE |
| WITH | WRITE | X509 |
| XOR | YEAR_MONTH | ZEROFILL |
Следующие символы (из приведенной выше таблицы таблицы) не разрешены в ANSI SQL, но допускаются в MySQL как имена столбцов/таблиц. Это объясняется тем, что некоторые из этих имен являются словами естественного языка и уже использованы многими потребителями.
ACTION
BIT
DATE
ENUM
NO
TEXT
TIME
TIMESTAMP
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
© 1995-2005 MySQL AB. All rights reserved.
