The table stops being enough the moment the data outgrows its shape. That’s when you add a new column.
A new column changes the model. It holds new fields, allows new joins, and shifts how queries run. In SQL, ALTER TABLE with ADD COLUMN is the simplest command to write and the easiest to misuse. Every new column must have a clear purpose, a defined type, and a plan for integration with existing code paths.
When you create a new column in PostgreSQL, for example:
ALTER TABLE users
ADD COLUMN last_login TIMESTAMP WITH TIME ZONE;
The database updates instantly for metadata, but backfilling can cause locks if the default is non-null. On large datasets, this can stall writes. Zero-downtime migrations avoid this by adding the column as nullable, populating data in batches, and setting constraints after the backfill completes.
In MySQL, ADD COLUMN rewrites the whole table in certain versions. Modern releases with ALGORITHM=INPLACE reduce the impact, but you still need to check the execution plan before deploying to production.