Constraints

module: pyrseas.dbobject.constraint

The constraint module defines six classes: Constraint derived from DbSchemaObject, classes CheckConstraint, PrimaryKey, ForeignKey and UniqueConstraint derived from Constraint, and ConstraintDict derived from DbObjectDict.

Constraint

Class Constraint is derived from ~pyrseas.dbobject.DbSchemaObject and represents a constraint on a database table. Its keylist attributes are the schema name, the table name and the constraint name.

autoclass: Constraint

automethod: Constraint.key_columns

automethod: Constraint.add

automethod: Constraint.drop

automethod: Constraint.comment

Check Constraint

CheckConstraint is derived from Constraint and represents a CHECK constraint.

autoclass: CheckConstraint

automethod: CheckConstraint.to_map

automethod: CheckConstraint.add

automethod: CheckConstraint.drop

automethod: CheckConstraint.alter

Primary Key

PrimaryKey is derived from Constraint and represents a primary key constraint.

autoclass: PrimaryKey

automethod: PrimaryKey.to_map

automethod: PrimaryKey.alter

Foreign Key

ForeignKey is derived from Constraint and represents a foreign key constraint.

The following shows a foreign key segment of a map returned by to_map and expected as argument by ConstraintDict.from_map exemplifying various possibilities:

{'t1_fgn_key1':
    {
    'columns': ['c2', 'c3'],
    'on_delete': 'restrict',
    'on_update': 'set null',
    'references':
        {'columns': ['pc2', 'pc1'], 'schema': 's1', 'table': 't2'}
    }
}
autoclass: ForeignKey

automethod: ForeignKey.ref_columns

automethod: ForeignKey.to_map

automethod: ForeignKey.add

automethod: ForeignKey.alter

Unique Constraint

UniqueConstraint is derived from Constraint and represents a UNIQUE, non-primary key constraint.

autoclass: UniqueConstraint

automethod: UniqueConstraint.to_map

automethod: UniqueConstraint.alter

Constraint Dictionary

Class ConstraintDict is a dictionary derived from ~pyrseas.dbobject.DbObjectDict and represents the collection of constraints in a database.

autoclass: ConstraintDict

automethod: ConstraintDict.from_map