当前位置: 首页 > 面试题库 >

在MySQL中为现有数据生成GUID吗?

夏侯嘉荣
2023-03-14
问题内容

我刚刚将一堆数据导入到MySQL表中,并且有一列“ GUID”,我希望基本上用新的和唯一的随机GUID填充所有现有行。

如何在MySQL中做到这一点?

我试过了

UPDATE db.tablename
  SET columnID = UUID()
  where columnID is not null

并且让每个领域都一样


问题答案:

我不确定这是否是最简单的方法,但是可以。这个想法是创建一个可以为您完成所有工作的触发器,然后执行查询以更新您的表,最后删除该触发器:

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

*再次 *更新 :似乎您的原始查询也应该工作(也许您不需要WHERE columnID is not null,因此不需要我所有的花哨代码



 类似资料:
  • 我的数据库中有各种对象,由唯一的。当我显示它们时,我希望它们中的每一个都有基于其 guid 的独特颜色。 所以我想要这样的东西: 哪里 最好的方法是什么? 显然,唯一的guid比颜色多得多,所以不可能每个guid都有自己唯一的颜色。我只是想找一个好的品种。

  • 问题内容: 我正在开发一个Web服务,它需要传递一个新值作为对该服务内方法的引用。 我不熟悉或,但是需要类似的东西(因此创建一个新对象,据我了解返回)。 有任何想法吗? 问题答案: 您可以尝试以下方法: 资源 -

  • 使用liquibase可以从现有数据库生成changelog吗? 我希望每个表生成一个xml changelog(不是每个create table语句都在一个changelog中)。

  • 我想用springboot项目生成MySQL数据库。我创建了一个maven项目,这是pom.xml:

  • 我试图从defiend JpaEntities更新数据库模式,但spring boot无法生成数据库表。日志文件: application.properties文件: 客户端实体类: pom.xml http://maven.apache.org/xsd/maven-4.0.0.xsd“>4.0.0 org.springframework.boot spring-boot-starter-pare

  • 问题内容: 我需要使用表/结果集/任何包含整数(包括整数)的联接。是否有一种简单的方法来实现这一目标而不仅仅是构建表? (顺便说一句,这种类型的结构称为“ 元查询 ”吗?) 被限制在合理的范围内(<1000) 问题答案: MySQL中没有序列号生成器(CREATE SEQUENCE )。最近的是,它可以帮助您构造表。