我刚刚将一组数据导入一个MySQL表,我有一个列"GUID",我想用新的、唯一的随机GUID基本上填充所有现有行.
如何在MySQL中实现这一点?
我试过了
UPDATE db.tablename
SET columnID = UUID()
where columnID is not null
让每个领域都一样
我刚刚将一组数据导入一个MySQL表,我有一个列"GUID",我想用新的、唯一的随机GUID基本上填充所有现有行.
如何在MySQL中实现这一点?
我试过了
UPDATE db.tablename
SET columnID = UUID()
where columnID is not null
让每个领域都一样
我不确定这是不是最简单的方法,但它确实有效.我们的 idea 是创建一个触发器,它可以为您完成所有工作,然后执行一个更新表的查询,最后删除该触发器:
delimiter //
create trigger beforeYourTableUpdate BEFORE UPDATE on YourTable
FOR EACH ROW
BEGIN
SET new.guid_column := (SELECT UUID());
END
//
然后执行
UPDATE YourTable set guid_column = (SELECT UUID());
和DROP TRIGGER beforeYourTableUpdate
;
UPDATE
UPDATE YourTable,
INNER JOIN (SELECT unique_col, UUID() as new_id FROM YourTable) new_data
ON (new_data.unique_col = YourTable.unique_col)
SET guid_column = new_data.new_id
UPDATE再一次: