我有一个包含两列的Postgres表(标识符和日期),它们是复合主键。我想要将它们拼接起来并哈希到另一列中,在每次插入新记录时生成这个值。为此,我正在尝试修改我的表以创建一个生成列:
ALTER TABLE my_table ADD COLUMN hash_id_date VARCHAR(50)
GENERATED ALWAYS AS (MD5(my_table.original_id||'-'||my_table.time))
STORED;
这让我遇到了以下错误:
ERROR: syntax error at or near "("
LINE 4: GENERATED ALWAYS AS (MD5(my_table.original_id,'-',my_table.t...
^
SQL state: 42601
Character: 178
我为寻找语法错误而陷入疯狂......我已经阅读了有关
STABLE
和IMMUTABLE
函数以及生成列应始终具有IMMUTABLE
函数作为表达式的文章。据我所知,MD5
是IMMUTABLE
的,但错误消息甚至无法达到那个级别。
有任何帮助吗?
select version();
会返回MySQL数据库版本信息。 - user330315