You are better off dropping and recreating. Why ?
Let's take the hypothetical example from your question
CREATE TABLE result_table AS ( SELECT * FROM tableA JOIN tableB );
This is literally a pure Cartesian Product.
2,000 rows and
5,000. A Cartesian product would result in
Now let's say you added the column
If you had to fill in tableA into result_table, what would the join look like ?
First, you would have to graft col_1 into
ALTER TABLE result_table ADD COLUMN col_1;
That's a pass through
1,000,000 (1 million) rows to inject a column.
Then, you have to perform a join of the ugliest kind
UPDATE result_table JOIN tableA
ON result_table.column_key_from_table JOIN tableA.column_key_from_table;
Remember I said joining 2,000 rows to 5,000 rows made
result_table 1,000,000 rows ?
To perform the
UPDATE JOIN, you would have to create a temp table with 2,000,000,000 rows. Yes, 2 billion rows (
2,000). The temp table has to be created. Then, you have to perform pass through the 2 billion rows to populate the
I think you want to be finished working with the table so you can have time to raise a family, collect your pension, etc.. So, I'd go with the dropping and recreating the table.