我正在将mysql表中的一个“Varchar”列转换为文本字段。我只是使用单个alter命令来转换类型。当我读到有关文本的内容时,varchar知道它在存储机制方面存在差异。
我是否应该编写任何迁移脚本来更改列的类型并移动数据或单个类型更改命令就足够了?
答案 0 :(得分:4)
将varchar
更改为text
没有什么大问题,因为text
支持的数据长度超过varchar
,但如果字段有索引,则必须删除并创建前缀为col_name(length)
的新索引(请参阅CREATE INDEX syntax)。
根据您的数据内容,使用fulltext
索引可能是一个好主意,但这意味着更改该字段上的搜索表达式。
如果您处于生产环境中,则会同时锁定表,以防止数据丢失。
答案 1 :(得分:4)
ALTER TABLE table_name MODIFY column_name TEXT NOT NULL;