GNU Info

Info Node: (mysql.info)Reserved words

(mysql.info)Reserved words


Prev: Comments Up: Language Structure
Enter node , (file) or (file)node

Is MySQL Picky About Reserved Words?
------------------------------------

A common problem stems from trying to create a table with column names
that use the names of datatypes or functions built into MySQL, such as
`TIMESTAMP' or `GROUP'.  You're allowed to do it (for example, `ABS' is
an allowed column name), but whitespace is not allowed between a
function name and the `(' when using functions whose names are also
column names.

The following words are explicitly reserved in MySQL. Most of them are
forbidden by ANSI SQL92 as column and/or table names (for example,
`group').  A few are reserved because MySQL needs them and is
(currently) using a `yacc' parser:

`action'           `add'              `aggregate'        `all'
`alter'            `after'            `and'              `as'
`asc'              `avg'              `avg_row_length'   `auto_increment'
`between'          `bigint'           `bit'              `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'

The following symbols (from the table above) are disallowed by ANSI SQL
but allowed by MySQL as column/table names. This is because some of
these names are very natural names and a lot of people have already
used them.

   * `ACTION'

   * `BIT'

   * `DATE'

   * `ENUM'

   * `NO'

   * `TEXT'

   * `TIME'

   * `TIMESTAMP'


automatically generated by info2www version 1.2.2.9