gpt4 book ai didi

postgresql 函数式外键

转载 作者:行者123 更新时间:2023-11-29 13:18:33 24 4
gpt4 key购买 nike

这是我想做的:

create table stuff
(some_key varchar primary key,
some_data varchar)
;

create table obfuscated_stuff
(some_key_sha1 varchar references digest(stuff (some_key), 'sha1'),
other_data varchar)
;

换句话说,我想基于单向散列设置另一个表的外键,而不必将该散列放在原始表中。

这是一项政策/法规要求。我可以构建没有 FK 约束的“obfuscated_stuff”表,但我宁愿把它放在那里。

似乎不允许在 FK 约束中使用函数。我也无法对 View 执行 FK(其中可能具有该功能)。还有其他建议吗?

最佳答案

根据当前 documentation你不能这样做。只允许一列或一组列名。

你是对的,你不能对 View 进行FK。物化 View 也是如此。

您可以在引用者列的 BEFORE INSERT/UPDATE 上编写触发器,以检查引用的索引列。违反时,返回 NULL 或异常。在引用表的 PK 上,您甚至可以使用散列值创建索引。

关于postgresql 函数式外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45548345/

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