Is there any drawback in altering an existing column datatype from TEXT to VARCHAR(n)? I have an existing column whose data type is TEXT. Now I realized that the values are just single strings. So, the data type VARCHAR(n) should have been proper in my case. So, I wanted to change the data type from TEXT to VARCHAR(n). 

Now my question is:

I came to know that in case of TEXT data type, internally, the data will be stored in another place and a pointer will be saved in the table.
Now if I want to change the data type from TEXT to VARCHAR(n), will the data be copied into the table? 

Basically,I am interested how data migration will take place internally and its possible side effect.

Note: The column is not used as index.
The only risk is truncation of data.

Effectively the ALTER will


Create a new table with VARCHAR instead of TEXT.
Copy all the rows over.
Rename to put the new table in place of the original.


So, the question is, will copying a TEXT into a VARCHAR of the same CHARACTER SET do any harm?  The only possible thing is truncation.