Adding a new column should be simple. In practice, it can break migrations, slow queries, and throw application logic off balance. The way you create, populate, and deploy that column decides whether your release is clean or chaotic.
In SQL, the basic syntax to add a new column looks like this:
ALTER TABLE orders ADD COLUMN shipped_at TIMESTAMP;
That command works. But in production, you need more than syntax. You need to think about default values, nullability, indexing, and the cost of backfilling. A careless default can lock the table. A missing index can crush query performance for weeks.
For large datasets, online schema changes are safer. Tools like pt-online-schema-change or native database features for concurrent DDL let you add a new column without blocking reads and writes. Always measure the migration impact before running it against live data.