Constraints
Let's learn about the database constraints to keep invalid data out of the database.
We'll cover the following
Keeping invalid values out of the database is easier than attempting to fix the data later. Fixing the data is often called data cleaning. Foreign keys were an easy way to make sure references were valid. Constraints can do the same thing for individual field values.
CheckConstraint
For the sake of discussion, suppose we want to prevent authors who were born in the future. So the birth_year
field of the BirthYear
class should be constrained to be less than or equal to 2020. This constraint is added as an additional argument in the column definition. We need to pass in a CheckConstraint
object to the column definition.
As with the foreign key, inserting an invalid record will raise an integrity error, which will be caught and handled, as seen below.
Note:
CheckConstraint
must be imported fromsqlalchemy
. We’ve highlighted the new lines in the widget below.
Get hands-on with 1200+ tech skills courses.