
CREATE TABLE t2 (a bigint primary key DEFAULT UUID_SHORT());

The DEFAULT clause cannot contain any stored functions or subqueries, and a
column used in the clause must already have been defined earlier in the
statement.

Since MariaDB 10.2.1, it is possible to assign BLOB or TEXT columns a DEFAULT
value. In earlier versions, assigning a default to these columns was not
possible.

MariaDB starting with 10.3.3
----------------------------
Starting from 10.3.3 you can also use DEFAULT (NEXT VALUE FOR sequence)

AUTO_INCREMENT Column Option
----------------------------

Use AUTO_INCREMENT to create a column whose value can can be set automatically
from a simple counter. You can only use AUTO_INCREMENT on a column with an
integer type. The column must be a key, and there can only be one
AUTO_INCREMENT column in a table. If you insert a row without specifying a
value for that column (or if you specify 0, NULL, or DEFAULT as the value),
the actual value will be taken from the counter, with each insertion
incrementing the counter by one. You can still insert a value explicitly. If
you insert a value that is greater than the current counter value, the counter
is set based on the new value. An AUTO_INCREMENT column is implicitly NOT
NULL. Use LAST_INSERT_ID to get the AUTO_INCREMENT value most recently used by
an INSERT statement.

ZEROFILL Column Option
----------------------

If the ZEROFILL column option is specified for a column using a numeric data
type, then the column will be set to UNSIGNED and the spaces used by default
to pad the field are replaced with zeros. ZEROFILL is ignored in expressions
or as part of a UNION. ZEROFILL is a non-standard MySQL and MariaDB
enhancement.

PRIMARY KEY Column Option
-------------------------

Use PRIMARY KEY to make a column a primary key. A primary key is a special
type of a unique key. There can be at most one primary key per table, and it
is implicitly NOT NULL.

Specifying a column as a unique key creates a unique index on that column. See
the Index Definitions section below for more information.

UNIQUE KEY Column Option
------------------------

Use UNIQUE KEY (or just UNIQUE) to specify that all values in the column must
be distinct from each other. Unless the column is NOT NULL, there may be
multiple rows with NULL in the column.

Specifying a column as a unique key creates a unique index on that column. See
the Index Definitions section below for more information.

COMMENT Column Option
---------------------

You can provide a comment for each column using the COMMENT clause. The
maximum length is 1024 characters. Use the SHOW FULL COLUMNS statement to see
column comments.

REF_SYSTEM_ID
-------------

REF_SYSTEM_ID can be used to specify Spatial Reference System IDs for spatial
data type columns. For example:

CREATE TABLE t1(g GEOMETRY(9,4) REF_SYSTEM_ID=101);

Generated Columns
-----------------

A generated column is a column in a table that cannot explicitly be set to a
specific value in a DML query. Instead, its value is automatically generated
based on an expression. This expression might generate the value based on the
values of other columns in the table, or it might generate the value by
calling built-in functions or user-defined functions (UDFs).

There are two types of generated columns:

* PERSISTENT or STORED: This type's value is actually stored in the table.
* VIRTUAL: This type's value is not stored at all. Instead, the value is
generated dynamically when the table is queried. This type is the default.

Generated columns are also sometimes called computed columns or virtual
columns.

For a complete description about generated columns and their limitations, see
Generated (Virtual and Persistent/Stored) Columns.

COMPRESSED
----------

MariaDB starting with 10.3.3
----------------------------
Certain columns may be compressed. See Storage-Engine Independent Column
Compression.

INVISIBLE
---------

MariaDB starting with 10.3.3
----------------------------
Columns may be made invisible, and hidden in certain contexts. See Invisible
Columns.

WITH SYSTEM VERSIONING Column Option
------------------------------------

MariaDB starting with 10.3.4
----------------------------
Columns may be explicitly marked as included from system versioning. See
System-versioned tables for details.

WITHOUT SYSTEM VERSIONING Column Option
---------------------------------------

MariaDB starting with 10.3.4
----------------------------
Columns may be explicitly marked as excluded from system versioning. See
System-versioned tables for details.

Index Definitions
-----------------

index_definition:
  {INDEX|KEY} [index_name] [index_type] (index_col_name,...) [index_option]
...
 {{{|}}} {FULLTEXT|SPATIAL} [INDEX|KEY] [index_name] (index_col_name,...)
[index_option] ...
 {{{|}}} [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...)
[index_option] ...
 {{{|}}} [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type]
(index_col_name,...) [index_option] ...
 {{{|}}} [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...)
reference_definition

index_col_name:
  col_name [(length)] [ASC | DESC]

index_type:
  USING {BTREE | HASH | RTREE}

index_option:
  [ KEY_BLOCK_SIZE [=] value
 {{{|}}} index_type
 {{{|}}} WITH PARSER parser_name
 {{{|}}} COMMENT 'string'
 {{{|}}} CLUSTERING={YES| NO} ]
 [ IGNORED | NOT IGNORED ]

reference_definition: