
While most of the attributes involved in creating a table do not involve other database objects, including a foreign key in your initial table definition will cause Postgres to acquire a SHARE ROW EXCLUSIVE lock against the referenced table blocking any concurrent DDL or row modifications. While this lock should be short-lived, it nonetheless requires the same caution as any other operation acquiring such a lock. We prefer to split these into two separate operations: create the table and then add the foreign key.
Then start imaging what it could be. Think about Clement when the Farmer’s Market is going and imagine it being like that all the time, full of people and vendors and vivacity instead of parked cars. Imagine a truly protected bike lane from Arguello to the Pacific Ocean, not just paint. Picture a c…