Schema changes seem small until they aren’t. A new column can break queries, slow writes, trigger application errors, or corrupt data if done wrong. The cost isn’t in adding it—it’s in adding it safely, without downtime, and without surprise side effects.
A new column in SQL alters the table structure. In MySQL, PostgreSQL, and most relational databases, the command is simple:
ALTER TABLE users ADD COLUMN last_login_at TIMESTAMP;
But the command alone is rarely enough. The real work is managing deployments around it. On large tables, even a single ALTER TABLE can lock writes. Columns with defaults may rewrite the table. Nullability rules decide whether old rows need immediate values.
Best practice is to break the change into steps. Add the column as nullable first. Deploy application logic that can handle both old and new data paths. Backfill values in controlled batches. Then set NOT NULL constraints or defaults once data is complete. This approach avoids blocking traffic and reduces migration risk.