I need to alter a large table in order to add a foreign key. Does adding the constraint cause the table to be rebuilt? The referenced table already exists and has an index on the column.
No, so long as the column types are identical, as well as the index definitions.
That said, attempting to define a foreign key constraint on two indexes that differ will fail and you'll have to alter the tables and/or build/rebuild the indexes manually.