2014-12-16 2 views
0

Я относительно новичок в postgres (я являюсь пользователем django - используйте pgsql через orm), и я пытаюсь выяснить способ вставки содержимого в специальный столбец - но пока , мне не повезло. Итак, у меня сначала есть база данных dzmodel_uf с двумя столбцами: id (это PK) и content - оба из которых заполнены (скажем, 50 записей).postgres таблица обновлений на основе другой таблицы

Теперь я хотел бы создать другую таблицу, в которой ссылки (внешние ключи) равны id из dzmodel_uf. Итак, я делаю следующее:

--INITIALIZATION 
CREATE TABLE MyNewTable(id integer REFERENCES dzmodel_uf (id)); 
ALTER TABLE ONLY FullTextSearch ADD CONSTRAINT mynewtable_pkey PRIMARY KEY (id); 

который работает нормально. Теперь я создаю столбец таблицы MyNewTable следующим образом:

ALTER TABLE MyNewTable ADD COLUMN content_tsv_gin tsvector; 

.., который также отлично работает. Наконец, я хотел бы добавить содержимое из dzmodel_uf - колонки content так:

UPDATE MyNewTable SET content_tsv_gin = to_tsvector('public.wtf', dzmodel_uf(content)) 

.. но это FAILS и говорит, что колонка content не существует ..

В двух словах, я не как я могу ссылаться на значения из другой таблицы.

+0

Если новая таблица по-прежнему пуст, вы должны ВСТАВИТЬ, не UPDATE. – joop

+0

@joop: Я пробовал это. Когда я это делаю - PGsql не печатает никаких сообщений об ошибках, но я вижу, что таблица пуста (MyNewTable), поскольку 'dzmodel_uf (content)' имеет около 50 записей! – JohnJ

+0

В чем ваш вопрос. Вывод 'UPDATE' или дизайн таблицы? Лучше всего задавать * один * четко определенный вопрос. Но сначала вам нужно изучить основы самостоятельно. –

ответ

2

Надеюсь, я понял вопрос (он довольно нечеткий). В целевой таблице нет строк, поэтому вам нужно добавить их. Вам нужно INSERT, не UPDATE:

INSERT INTO MyNewTable (id,content_tsv_gin) 
SELECT dzu.id, to_tsvector(public.wtf, dzu.content) 
FROM dzmodel_uf dzu 
    ; 
+0

Я должен был знать лучше - мне нужен ВСТАВЬТЕ, а не ОБНОВЛЕНИЕ - Довольно глупо от меня - Извините, я не настоящий программист, просто пытаюсь! – JohnJ

Смежные вопросы