Adding a foreign key constraint without losing the current data
Why would you lose the rows in the users table when you add a column to it? The rows just get initialized with a null value.  After you place the foreign key constraint, future rows with that column set to non-null get checked against the table the column references.

There are three ways for you to lose rows.


DELETE
TRUNCATE
DROP TABLE