3.9: Как MySQL работает с зарезервированными словами?
Главная Страница » Книги по PHP » MySQL уроки для начинающих с нуля » Как MySQL работает с зарезервированными словами?
Проблемы возникают при попытке создать таблицу с именами столбцов, которые используют имена типов или функций, встроенных в MySQL, подобно TIMESTAMP или GROUP. Вам позволяют делать это (например, ABS - позволенное имя столбца), но пробелы между именем функции и при использовании функций, чьи имена также являются именами столбцов, не допускаются.
Следующие слова, показанные в табл. 3.4, явно зарезервированы в MySQL. Большинство их запрещается ANSI SQL92 для имен таблицы или столбца (например, group). Несколько слов зарезервированы потому, что MySQL нуждается в них:
Таблица 3.4. Зарезервированные слова в MySQL
action | add | aggregate | all |
alter | after | and | as |
asc | avg | avg_row_length | autojncrement |
between | bigint | bjt | binary |
blob | bool | both | by |
cascade | case | char | character |
change | check | checksum | column |
columns | comment | constraint | create |
cross | current_date | current_time | current_timestamp |
data | database | databases | date |
datetime | day | day_hour | day_minute |
day_second | dayofmonth | dayofweek | dayofyear |
dec | decimal | default | delayed |
delay_key_write | delete | desc | describe |
distinct | distinctrow | double | drop |
end | else | escape | escaped |
enclosed | enum | explain | exists |
fields | file | first | float |
float4 | float8 | flush | foreign |
from | for | full | function |
global | grant | grants | group |
having | heap | high_priority | hour |
hour_minute | hour_second | hosts | identified |
ignore | in | index | infile |
inner | insert | insert_id | int |
integer | interval | int1 | int2 |
int3 | int4 | int8 | into |
if | is | isam | join |
key | keys | kill | last_insert_id |
leading | left | length | like |
lines | limit | load | local |
lock | logs | long | longblob |
longtext | low_priority | max | max_rows |
match | mediumblob | mediumtext | mediumint |
middleint | min_rows | minute | minute_second |
modify | month | monthname | myisam |
natural | numeric | no | not |
null | on | optimize | option |
optionally | or | order | outer |
outfile | pack_keys | partial | password |
precision | primary | procedure | process |
processlist | privileges | read | real |
references | reload | regexp | rename |
replace | restrict | returns | revoke |
rlike | row | rows | second |
select | set | show | shutdown |
smallint | soname | sql_big_tables | sql_big_selects |
sql_low_priority_updates | sql_log_off | sql_log_update | sql_select_limit |
sql_small_result | sql_big_result | sql_warnings | straight_join |
starting | status | string | table |
tables | temporary | terminated | text |
then | time | timestamp | tinyblob |
tinytext | tinyint | trailing | to |
type | use | using | unique |
unlock | unsigned | update | usage |
values | varchar | variables | varying |
varbinary | with | write | when |
where | year | year_month | zerofill |
Следующие символы (из табл. 3.4) отвергнуты ANSI SQL, но разрешены MySQL как имена столбца или таблицы. Это потому, что некоторые из них очень удобные и естественные и часто использовались в работе:
›ACTION;
›BIT;
›DATE;
›ENUM;
›NO;
›TEXT;
›TIME;
›TIMESTAMP