根据 A 列更新 table 中所有行的 B 列
Update column B based on Column A for all rows in table
我需要根据 a 列的值将哈希值插入 b 列,但我需要对 table 中的每一行执行此操作。
无论我尝试什么,我总是会遇到这个错误:
ERROR: more than one row returned by a subquery used as an expression
我一直在尝试以下不同版本:
UPDATE table
SET column b = md5((SELECT column a FROM table))
WHERE column a IS NOT NULL;
关于如何执行此操作有什么建议吗?
这里不需要子查询。据我了解,您想将 column_a
的校验和存储在 column_b
中。正如人们所期望的那样,Postgres 的 md5()
函数需要一个字符串数据类型的单个标量参数,因此:
UPDATE table
SET column_b = md5(column_a)
WHERE column_a IS NOT NULL;
请注意,使用计算列(在 Postgres 12 中可用)存储此派生信息可能会更简单。
我需要根据 a 列的值将哈希值插入 b 列,但我需要对 table 中的每一行执行此操作。
无论我尝试什么,我总是会遇到这个错误:
ERROR: more than one row returned by a subquery used as an expression
我一直在尝试以下不同版本:
UPDATE table
SET column b = md5((SELECT column a FROM table))
WHERE column a IS NOT NULL;
关于如何执行此操作有什么建议吗?
这里不需要子查询。据我了解,您想将 column_a
的校验和存储在 column_b
中。正如人们所期望的那样,Postgres 的 md5()
函数需要一个字符串数据类型的单个标量参数,因此:
UPDATE table
SET column_b = md5(column_a)
WHERE column_a IS NOT NULL;
请注意,使用计算列(在 Postgres 12 中可用)存储此派生信息可能会更简单。