LucidDbCreateTable

From LucidDB Wiki
Jump to: navigation, search

Syntax

CREATE TABLE qualified-table-name
( table-element, ... )
[ DESCRIPTION table-description ]
[ clustered-index, ... ]

table-element ::= column-definition | table-constraint

column-definition ::= 
unqualified-column-name
data-type
[ DEFAULT default-value-literal | sequence-definition ]
[ column-constraint, ... ]

table-constraint ::= 
[ CONSTRAINT constraint-name ] { UNIQUE | PRIMARY KEY } ( column-name, ... )

column-constraint ::= 
[ CONSTRAINT constraint-name ] { NOT NULL | UNIQUE | PRIMARY KEY }

sequence-definition ::= 
GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY 
[ (
[ START WITH numeric-literal ]
[ INCREMENT BY numeric-literal ]
[ MINVALUE numeric-literal | NO MINVALUE ]
[ MAXVALUE numeric-literal | NO MAXVALUE ]
[ [ NO ] CYCLE ]
) ]

clustered-index ::=
CREATE CLUSTERED INDEX qualified-index-name
ON qualified-table-name
( unqualified-column-name, ... )

NOTE: user-defined clustered indexes are untested, and probably don't do what you think they do, so avoid them for now.

See LucidDbDataTypes for specification of data-type.

See LucidDbUniqueConstraints for more information about PRIMARY KEY and UNIQUE constraints.

Example

CREATE TABLE employee_dimension(
    emp_key INT GENERATED ALWAYS AS IDENTITY NOT NULL PRIMARY KEY,
    empno INT NOT NULL,
    ename VARCHAR(128) NOT NULL,
    dname VARCHAR(128) NOT NULL,
    job VARCHAR(128) NOT NULL,
CONSTRAINT ed_empno_unique UNIQUE(empno)
)
;
Product Documentation