一般的な問題の 1
        つとして、TIMESTAMP や
        GROUP など、MySQL
        に組み込まれているデータ型や関数の名前を使用するカラム名を含むテーブルの作成に関連する問題があります。このようなカラム名を含むテーブルの作成は可能です(たとえば、ABS
        はカラム名として使用可能です)。しかし、デフォルトでは、関数の呼び出し時に、関数名とそれに続く
        ‘(’
        文字との間に空白を挿入することはできません。これは、関数呼び出しをカラム名の参照と区別するためです。
      
        --ansi または
        --sql-mode=IGNORE_SPACE
        オプションを指定してサーバを起動した場合は、関数呼び出しで、関数名とそれに続く
        ‘(’
        文字との間に空白を挿入することができます。これらのオプションを指定すると、関数名が予約語として扱われるようになります。そのため、関数名と同一のカラム名は、項6.1.2. 「データベース名、テーブル名、インデックス名、カラム名、エイリアス名」
        で説明しているように引用符で囲む必要があります。
      
        以下の語は MySQL
        において明示的に予約されています。これらの語のほとんど(たとえば、GROUP)は、SQL-92
        では、カラム名またはテーブル名としての使用を禁止されています。
        いくつかの語は、MySQL
        でそれらの語を必要とし、(現在)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 | 
| 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 | XOR | YEAR_MONTH | 
| ZEROFILL | 
以下はMySQL 4.0で登場する新規の予約語です。
| CHECK | FORCE | LOCALTIME | 
| LOCALTIMESTAMP | REQUIRE | SQL_CALC_FOUND_ROWS | 
| SSL | XOR | 
以下はMySQL 4.1で登場する新規の予約語です。
| BEFORE | COLLATE | CONVERT | 
| CURRENT_USER | DAY_MICROSECOND | DIV | 
| DUAL | FALSE | HOUR_MICROSECOND | 
| MINUTE_MICROSECOND | MOD | NO_WRITE_TO_BINLOG | 
| SECOND_MICROSECOND | SEPARATOR | SPATIAL | 
| TRUE | UTC_DATE | UTC_TIME | 
| UTC_TIMESTAMP | VARCHARACTER | 
以下のシンボル(上の表に含まれるもの)は SQL-99 では使用を禁止されていますが、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.

