Создание таблицы с PSQL в качестве клона другой таблицы, но исключая столбец

Краткая версия: Какую команду psql я должен использовать для создания временной таблицы, которая является клоном данной таблицы, исключая данный столбец?Причина: у меня есть несколько очень больших файлов CSV, которые я хочу массово загрузить в базу данных Postges (в настоящее время 8.4 - миграция на 9.x).При загрузке этих CSV-файлов я хочу добавить дополнительное поле, например поле «дата».Используя этот пост в качестве вдохновения: ( Как обновить выбранные строки значениями из файла CSV в Postgres? ) Я пытаюсь сделать следующее:Создайте временную таблицу из схемы целевой таблицы, исключая столбец «дата».Запустите команду «\ COPY» для загрузки в временную таблицу.Обновите записи в целевой таблице с помощью записей во временной таблице + запись в столбце дополнительной даты.Это все прямо, кроме шага 1. Если имена столбцов известны заранее, эта строка может быть жестко запрограммирована.В моем случае у меня есть несколько похожих входных файлов с соответствующими таблицами, и я хочу, чтобы решение было гибким для обработки изменений в схеме.Мое хакерское решение состоит в том, чтобы иметь сценарий предварительной обработки, который определяет схему временной таблицы, а затем записывает эту команду CREATE в сценарий SQL перед запуском, например:что дает мне что-то вродекоторый затем может быть использован в операторе созданияОднако я думаю, что этот шаг обнаружения схемы не должен выполняться в самом скрипте PSQL.Я смотрел на использование «EXEC», но, насколько я вижу, мне нужно было бы поместить это в функцию, тип возвращаемого значения должен перечислять столбцы таблицы!Какие-либо предложения?
4 голоса | спросил Jim 24 Maypm13 2013, 18:01:34

2 ответа


0
Вы могли бы сделать что-то вроде этого:
ответил Denis de Bernardy 24 Maypm13 2013, 19:29:35
0
Благодаря тому, что Денис указал верное направление, вот мой шаблонный скрипт:Хотя мне все еще интересно узнать, как я мог получить ---- +: = 1 =: + ---- работать ..
ответил Jim 28 Maypm13 2013, 13:37:13

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132