Вы не можете сделать это напрямую, и MySQL не поддерживает определяемые пользователем типы.
В лучшем случае вы можете использовать ПОДГОТОВЛЕННОЕ ЗАЯВЛЕНИЕ , например, или создать свой запрос в приложении.
SET @foo_width = 10;
SELECT CONCAT("CREATE TABLE test_table (
foo varchar(",@foo_width,")
);") INTO @myquery;
select @myquery; -- only for test
PREPARE stmt FROM @myquery;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;