У меня есть файл csv, в котором указаны авторы столбцов:
test.csv
authors
authorA, authorB
Здесь авторы - это имя столбца, а значения - authorA , authorB.
Я импортировал данные в таблицу test_author, которая имеет структуру:
CREATE TABLE IF NOT EXISTS test_author(authors text);
Теперь я хочу перенести данные из этой таблицы в другую таблицу final с помощью скрипта а база данных - postgres.
CREATE TABLE IF NOT EXISTS final(authors text[]);
Здесь авторы - это массив.
сценарий:
for file in test.csv
do
tail -n +2 $file > tempLoc
PGPASSWORD=postgres psql -h postgres -U postgres postgres \
-c "\copy test_author FROM 'tempLoc' delimiter ',' csv;"
done
Когда я выполняю сценарий, я получаю сообщение об ошибке.
Он передает данные в test_author, и я выполняю:
transfer. sql
INSERT INTO final (authors)
SELECT
authors
from final
Ошибка:
ERROR: column "authors" is of type text[] but expression is of type text
LINE 12: authors,
^
HINT: You will need to rewrite or cast the expression.
Итак, у меня есть данные в файле csv, мне нужно передать эти данные в временную таблицу, которая имеет поле типа текста, используя скрипт и, наконец, в окончательную таблицу который имеет поле типа массив. И я столкнулся с ошибкой, как я могу ее решить? Я бы предпочел внести изменения в передачу файлов. sql предпочтительно.