CREATE TABLE … SELECT is extremely convenient, but has some limitations that arise
from the fact that the information available from a result set is not as extensive as what
you can specify in a CREATE TABLE statement. For example, MySQL has no idea whether
a result set column should be indexed or what its default value is. If it’s important to
include this information in the destination table, use the following techniques: