我是一个数据库/postgres 初学者,所以请耐心等待。
如果我有一张桌子,就像这样。
CREATE TABLE testy (
id INTEGER REFERENCES other_table,
name varchar(128) PRIMARY KEY,
json JSONB NOT NULL
);
Run Code Online (Sandbox Code Playgroud)
我在寻找插入或更新,将设置列之前创建一个触发器id,并name与在相同名称字段的值json。
因此,例如,如果testy包含以下内容UPDATE testy SET json = '{"id":2,"name":"jim"}' WHERE id = 1并被调用。
id | name | json
---+------+-----
1 | "jim"| {"id":1,"name":"jim"}
Run Code Online (Sandbox Code Playgroud)
想要的结果是
id | name | json
---+------+-----
2 | "jim"| {"id":2,"name":"jim"}
Run Code Online (Sandbox Code Playgroud)
我希望使其相当通用,因此不需要对列名进行硬编码。如果相应的 json 字段不存在,则将该列设置为 NULL 即可。到目前为止我有
CREATE TABLE testy_index (
id INTEGER PRIMARY KEY
);
INSERT INTO testy_index VALUES …Run Code Online (Sandbox Code Playgroud)