当前列是 VARCHAR(255) NOT NULL,那么如何将其更改为 TEXT NOT NULL?
注意:要更改其属性类型的列是另一列的 UNIQUE KEY 组合。例如。
唯一密钥(名称、描述)
列描述当前采用 varchar(255)。无法更改,原因如下:
错误 1170 (42000):密钥规范中使用了 BLOB/TEXT 列“描述”,但没有密钥长度
我需要它是文本,否则我需要重新创建整个事情?我已经在里面得到了一些乏味而重要的数据。重新创建会很麻烦。
您打算使用 TEXT 列作为 UNIQUE KEY 的一部分吗?
这是非常低效的!不要那样做!
我强烈建议您:
- 添加名为例如的附加列
'description_hash' char(32) not null default ''
- 存储哈希值
description
场进入其中。对于前。description_hash=MD5(description)
- 将您的密钥更改为
UNIQUE KEY (name, description_hash)
当然你需要保留description_hash
列在您的代码中是最新的,但正如所见 - 在大多数情况下,只需要进行很少的代码更改。
或者您可以使用触发器来处理此问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)