UPDATE одной таблицы из другой

Привет всем. Хотелось бы попросить помощи в решении вот такого вопроса.

* Есть исходная таблица 1 с набором записей.
** В данной таблице есть поле 'description' которое мне и понадобится.

* Есть так же таблица 2 с набором записей.
** Структура таблицы 2 грубо говоря такова - id::int, description::string
** Поле id автоматически не инкриментируется

Собственно выборку из таблицы 1 нужных мне полей произвести не проблема, а вот каким образом вставить все выбранные строки из таблицы 1 в таблицу 2? Условия таковы ,что данные в таблице 2 должны остаться + добавится новые, а так же поле id. Оно заполнено значениями и значения идут по порядку. Т.е если в таблице 2 последнее значение id = 1554 , то надо взять его и продолжить последовательную нумерацию пи вставке.
С postgreSQL я не знаком совсем (1 -й день его вижу. Синтаксис его несколько отличается от MSSql). Отсюда и проблемы. Прошу понять, быватю в жизни моменты, когда надо что-то сделать очень быстро. Поэтому я конечно могу отправится читать мануалы, но все же если бы кто-то мне помог был бы очень признателен. Всем ответившим заранее спасибо.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Напишите функцию. В ней

Напишите функцию. В ней сделайте цикл перебирающий строки в таблице 1 и делаете update или insert в таблицу 2.
А есть ещё такая штука как:

INSERT INTO таблица AS SELECT ...

>Условия таковы ,что данные в

>Условия таковы ,что данные в таблице 2 должны остаться + добавится новые.
И что, каждый раз при обновлении данных в таблице 2, Вы будите обновлять данные в таблице 1? Почитайте теорию БД, раздел нормализации. Думаю, что в данном случае предпочтительней использовать "представление", тем более, что выборку нужных данных сделать не проблема.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023