Documentation
¶
Overview ¶
Package schema provides functionality for modeling SQL constructs.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Column ¶
type Column struct {
Name string `json:"name"`
Table *Table `json:"-"`
Kind kind.Kind `json:"kind"`
NotNull bool `json:"not_null"`
HasDefault bool `json:"has_default"`
// Size typically applies to text fields, e.g. VARCHAR(255).
Size int `json:"size"`
Unique bool `json:"unique"`
ForeignKey *FKConstraint `json:"foreign_key,omitempty"`
}
Column models a table column definition.
type FKConstraint ¶
type FKConstraint struct {
// RefTable is the name of the referenced parent table.
RefTable string `json:"ref_table"`
// RefCol is the name of the referenced col in the parent table.
RefCol string `json:"ref_col"`
// OnDelete is one of CASCADE or SET_NULL, defaults to CASCADE.
OnDelete string `json:"on_delete"`
// OnUpdate is one of CASCADE or SET_NULL, defaults to CASCADE.
OnUpdate string `json:"on_update"`
}
FKConstraint models a foreign key constraint.
type Table ¶
type Table struct {
// Name is the table name.
Name string `json:"name"`
// PKColName is the name of the primary key column, or empty.
//
// REVISIT: this construct does not allow for composite PK.
PKColName string `json:"primary_key,omitempty"`
// AutoIncrement, if true, indicates that a PK column
// should autoincrement.
//
// REVISIT: this construct does not allow for composite PK.
AutoIncrement bool `json:"auto_increment"`
// Cols is the table's column definitions.
Cols []*Column `json:"cols"`
}
Table models a database table definition.
func (*Table) ColsByName ¶
ColsByName returns the ColDefs for each named column, or an error if any column is not matched.
Click to show internal directories.
Click to hide internal directories.