OptionalallowOptionaldefaultOptionalprimaryOptionalautoOptionaluniqueOptionalreferencesOptionalcommentOptionalcharsetColumn-level character set (MySQL/MariaDB, e.g. 'utf8mb4')
OptionalcollateColumn-level collation (MySQL/MariaDB, e.g. 'utf8mb4_unicode_ci')
OptionalsparseSQL Server: mark the column as SPARSE. Sparse columns optimize storage
for columns whose values are NULL most of the time, at the cost of extra
storage overhead for non-NULL values. Only valid on nullable columns —
SQL Server requires SPARSE columns to allow NULL.
OptionalinvisibleMarks the column INVISIBLE (MySQL 8.0+ / MariaDB 10.3+). Invisible
columns are hidden from SELECT * and don't require a value on
INSERT, which makes them useful for zero-downtime column rollout: add
the column invisible, backfill it, then flip it visible once ready.
Columns are visible by default (false/undefined).
One column in a
CREATE TABLEorALTER TABLE: its type, nullability, default, and key or reference membership.