是否可以为 PostgreSQL 中的 json 属性分配外键?这是我想要实现的示例,但它不起作用:
CREATE TABLE Users (Id int NOT NULL PRIMARY KEY);
CREATE TABLE Data (
Id int NOT NULL PRIMARY KEY,
JsonData json NOT NULL, -- [{Id: 1, somedata: null},{Id: 2, somedata: null}, ...]
CONSTRAINT FK_Users_Data FOREIGN KEY (JsonData->Id) REFERENCES Users(Id) -- this constraint will fail
);
最佳答案
将外键分配给 json 属性是不可能的,而且可能永远不可能。这将是对 PostgreSQL 外键执行的重大且相当复杂的更改。我认为这并非不可能,但会面临与外键到数组补丁所遇到的问题类似的问题。
在 9.4 中,可以使整个 json 对象成为外键,因为 jsonb
支持相等性测试。在 9.3 中你甚至不能这样做。
关于postgresql - PostgreSQL 中的 JSON 外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24489647/