PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Копирайте няколко от колоните на csv файл в таблица

Ако е ad hoc задача

Създайте временна таблица с всички колони във входния файл

create temporary table t (x1 integer, ... , x10 text)

Копирайте от файла в него:

copy t (x1, ... , x10)
from '/path/to/my_file'
with (format csv)

Сега вмъкнете в окончателната таблица от temp:

insert into my_table (x2, x5, x7, x10)
select x2, x5, x7, x10
from t

И го пуснете:

drop table t

Ако е честа задача

Използвайте file_fdw разширение. Като суперпотребител:

create extension file_fdw;

create server my_csv foreign data wrapper file_fdw;

create foreign table my_csv (
    x1 integer,
    x2 text,
    x3 text
) server my_csv
options (filename '/tmp/my_csv.csv', format 'csv' )
;

Предоставете разрешение за избор на таблицата на потребителя, който ще я чете:

grant select on table my_csv to the_read_user;

След това, когато е необходимо, прочетете директно от csv файла, сякаш е таблица:

insert into my_table (x2)
select x2
from my_csv
where x1 = 2


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създайте ER диаграма в pgAdmin

  2. Получаване на автоматично генериран ключ от вмъкване на ред през пролетта 3 / PostgreSQL 8.4.9

  3. Компилиране на PL/Proxy с PostgresPlus Advance Server 9.1

  4. SQL Вземете всички записи, по-стари от 30 дни

  5. Неуспешно зареждане на sql модули в клъстера на базата данни по време на инсталацията на PostgreSQL