Copyright (C) 2000-2012 |
GNU Info (mysql.info)Reserved wordsIs 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 |