我刚刚将一组数据导入一个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再一次:

Mysql相关问答推荐

mySQL错过字符串计数,错误?

含有子查询的MySQL函数出现语法错误

MySQL 8.0.33 Select json列时出现错误:排序内存不足,请考虑增加服务器排序缓冲区大小

MySQL如何在触发器内部 Select 多行然后插入它们

MySQL - 如何根据单列查找重复行?

如何编写一个查询,计算表中每个日期的一个日期加上前 4 天的记录数?

完全匹配 IN 子句中的所有值

MySQL Procedure 变量在 count(*) 上接收 null

go&mysql&docker 拒绝连接

MySql,如何从列中替换某种格式的字符串

即使我的约束是正确的,如何解决 errno: 150 外键约束形成错误?

Golang Gorm 没有创建带有约束的表

更改整数时间到日期格式 MM/DD/YY,如 python 中的 datetime.fromtimestamp

如何在不违反唯一约束的情况下交换 MySQL 中两行的值?

试图获取非对象的属性

PHP,MySQL 错误:列计数与第 1 行的值计数不匹配

将 Django DB 从 SQLite 迁移到 MySQL 的最佳方法是什么?

MySQL Workbench 无法加载 mysql.proc

如何计算表格的列数

如何将本地托管的 MySQL 数据库与 docker 容器连接