In SQL, adding a new column is simple. In production, it can be dangerous. The difference is in how you plan, execute, and monitor the change.
When you create a new column, you touch three layers: the database schema, the application code, and the data itself. In PostgreSQL, ALTER TABLE ADD COLUMN runs fast for empty tables but can lock writes on large ones. MySQL can block queries if run without care. Even with online DDL tools, you must check the impact on indexes, storage, and replication lag.
A new column should have a defined purpose before it exists. Set its type with precision. Use NOT NULL and defaults only when you understand the cost. Adding a default to a large table can rewrite every row. That can crush throughput. If you do not need historical backfill, leave it nullable and populate it in batches.
Schema changes should be coordinated with code deployments. Add the new column to the database first, deploy code that can read both old and new structures, then start writing to it. Only once everything runs clean should you enforce constraints or drop deprecated fields.