Baoqiu Cui wrote:
> What bothers me is that I just don't see how the CREATE TABLE syntax
> allows the UNIQUE keyword to appear in a COLUMN_DEFINITION:
>
> COLUMN_DEFINITION:
> COL_NAME TYPE [NOT NULL | NULL] [DEFAULT DEFAULT_VALUE]
> [AUTO_INCREMENT] [[PRIMARY] KEY] [COMMENT 'STRING']
> [REFERENCE_DEFINITION]
You seem to have copied only the lower part of the definition. Read it
all and you should find the UNIQUE also:
<a style='text-decoration: underline;' href="http://dev.mysql.com/doc/mysql/en/create-table.html" target="_blank">http://dev.mysql.com/doc/mysql/en/create-table.html</a>
------------------------
create_definition:
column_definition
| [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...)
| KEY [index_name] [index_type] (index_col_name,...)
| INDEX [index_name] [index_type] (index_col_name,...)
| [CONSTRAINT [symbol]] UNIQUE[INDEX]
[index_name] [index_type] (index_col_name,...)
| [FULLTEXT|SPATIAL] [INDEX] [index_name] (index_col_name,...)
| [CONSTRAINT [symbol]] FOREIGN KEY
[index_name] (index_col_name,...) [reference_definition]
| CHECK (expr)
column_definition:
col_name type [NOT NULL | NULL] [DEFAULT default_value]
[AUTO_INCREMENT] [[PRIMARY] KEY] [COMMENT 'string']
[reference_definition]
------------------------<!-- ~MESSAGE_AFTER~ -->
>> Stay informed about: syntax problem for CREATE TABLE ??