[英]MYSQL-Update Existing Varchar column GUID values to Binary
我有一个MYSQL数据库,其GUID(或UUID)存储为Varchar(36)。 为了提高性能,我想将它们转换为Binary(16)。 对于新值,我可以使用类似
插入某些表(SOMECOLUMN,UUID)值(“ Something”,UNHEX([-uuid]))
但是,如何将现有存储的GUID值更新为Binary(16)?
我自己得到了答案。
万一其他人需要它。 这里是
将GUID列的类型更改为VARBINARY以避免右填充。
ALTER TABLE
newtable
修改列id
VARBINARY(36)非空;
将现有的ID数据更新为BINARY ID
UPDATE newtable set id = UNHEX(REPLACE(id,'-',''));
现在将列数据类型更改为BINARY(16)
ALTER TABLE
newtable
MODIFY COLUMNid
BINARY(16)非空;
创建一个新列:
ALTER TABLE sometable ADD newColumn BINARY(16) AFTER UUID;
更新表:
UPDATE sometable SET newColumn = UNHEX(UUID);
删除旧列并重命名新列(如果需要,通常最好不要重命名,这样未更新的应用程序代码将失败,而不是错误地使用该表):
ALTER TABLE sometable DROP UUID, CHANGE newColumn UUID BINARY(16);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.