A table_constraint restricts the values that a table can store. You can either pass a primary_key_definition or a foreign_key_definition. The primary_key_definition sets the primary key for the table and the foreign_key_definition is used to set the foreign key (which matches the primary key of another table).