@@ -286,7 +286,8 @@ unique columns = UnsafeTableConstraintExpression $
286286-- "CREATE TABLE \"tab\" (\"id\" serial, \"name\" text NOT NULL, CONSTRAINT \"pk_id\" PRIMARY KEY (\"id\"));"
287287primaryKey
288288 :: ( Has alias schema table
289− , HasAll aliases (TableToColumns table) subcolumns )
289+ , HasAll aliases (TableToColumns table) subcolumns
290+ , AllNotNull subcolumns )
290291 => NP Alias aliases
291292 -> TableConstraintExpression schema alias ('PrimaryKey aliases)
292293primaryKey columns = UnsafeTableConstraintExpression $
@@ -337,8 +338,11 @@ foreignKey
337338 :: ( Has child schema table
338339 , Has parent schema reftable
339340 , HasAll columns (TableToColumns table) tys
340− , HasAll refcolumns (TableToColumns reftable) reftys
341− , SOP.AllZip SamePGType tys reftys )
341+ , reftable ~ (constraints :=> cols)
342+ , HasAll refcolumns cols reftys
343+ , SOP.AllZip SamePGType tys reftys
344+ , AllNotNull reftys
345+ , Uniquely refcolumns constraints )
342346 => NP Alias columns
343347 -- ^ column or columns in the table
344348 -> Alias parent