USE
The most fundamental field keyword is is
. Use it to specify the SQL type of the column. The value can be a single SQL type name or a comma separated list of things to include in the SQL column definition.
You may use any type your database engine understands. But, some values are special because they are convereted to appropriate synonymns for all database engines:
type what it becomes
---------------------------------------------
varchar a string type
int4 a moderately large integer
datetime a full time and date
In addition to the types which are converted for each database, two other values have special effects:
primary_key - marks this field as the primary key (or part of it)
auto - indicates that the field should be auto-incremented
Most tables have meaningless, sequentially assigned, integer keys. To get one of those say:
field id { is int4, primary_key, auto; }
Many fields hold strings, to get one say:
field name { is varchar; }
Note that you may want to add other field statements in the block other than is
.
You may augment the type with anything your database understands in a column declaration. Some of those things have their own keywords, for instance, on_delete
and on_update
allow you to easily specify cascading behavior when employing foreign keys.
You could say something like:
field state {
is varchar, `DEFAULT 'KS'`;
EXAMPLE
To see an example, build:
bigtop -c example.bigtop all
Change to the newly created Kids directory and look in Kids/docs/schema.sqlite for the result of is
statements.