gpt4 book ai didi

sql - 使用生成的 UUID 更新列

转载 作者:行者123 更新时间:2023-11-29 12:31:12 27 4
gpt4 key购买 nike

如何使用生成的每行具有不同值的 UUID 更新列值?

UPDATE TABLE 
SET id = replace(cast(uuid_in(md5(now()::text)::cstring) as varchar), '-', '');

我使用了该代码,但导致 id 列上的每一行都具有相同的值。谢谢!

更新

replace(cast(uuid_in(md5(now()::text)::cstring) as varchar), '-', '')

此行返回类似:414079b5c096f2defa6a4ce8f1880e2c

假设我有这张表:

ID ColumnA
1 testA
2 testB
3 testC

我想将 ID 列上的每个值更新为:

ID                                ColumnA
414079b5c096f2defa6a4ce8f1880e2c testA
414079b5c096f2defa6a4ce8f1881f3d testB
414079b5c096f2defa6a4ce8f1882g4e testC

但我从该查询中得到的是,ID 列上的每个值都具有相同的值。

最佳答案

now() 返回交易 开始的时间。

你想使用clock_timestamp()

引自手册:

clock_timestamp() returns the actual current time, and therefore its value changes even within a single SQL command

手册中的更多详细信息:
http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-CURRENT


顺便说一句:Postgres 已经有一个内置的 UUID 生成函数。您可能也想看看:http://www.postgresql.org/docs/current/static/uuid-ossp.html

关于sql - 使用生成的 UUID 更新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27937811/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com