我对postgres相对较新(我是django用户 - 通过orm使用pgsql),我试图想出一种方法将内容插入到一个特定的列中 - 但到目前为止,我没有任何运气。所以,我首先拥有一个包含两列的数据库dzmodel_uf
:id
(这是PK)和content
- 两者都填充(比如50个条目)。
现在,我想创建另一个表,引用(外键)到id
的{{1}}。所以,我做了以下几点:
dzmodel_uf
工作正常。现在,我在MyNewTable表上创建一个列,如下所示:
--INITIALIZATION
CREATE TABLE MyNewTable(id integer REFERENCES dzmodel_uf (id));
ALTER TABLE ONLY FullTextSearch ADD CONSTRAINT mynewtable_pkey PRIMARY KEY (id);
..这也很好。最后,我想添加ALTER TABLE MyNewTable ADD COLUMN content_tsv_gin tsvector;
- 列dzmodel_uf
中的内容,如下所示:
content
..但是这个FAILS并且说UPDATE MyNewTable SET content_tsv_gin = to_tsvector('public.wtf', dzmodel_uf(content) )
列不存在..
简而言之,我不确定如何引用另一个表中的值。
答案 0 :(得分:2)
我希望我理解这个问题(它很模糊)。目标表中没有行,所以你必须添加它们。
您需要INSERT
,而不是UPDATE
:
INSERT INTO MyNewTable (id,content_tsv_gin)
SELECT dzu.id, to_tsvector( public.wtf, dzu.content )
FROM dzmodel_uf dzu
;