COPY, verileri PostgreSQL tabloları ve standart dosya sistemi dosyaları arasında taşır. COPY TO tablonun içeriğini dosyaya kopyalarken, COPY FROM dosyadaki verileri tabloya kopyalar. COPY TO ayrıca SELECT sorgusunun sonuçlarınıda kopyalayabilir yani sütun listesi belirtilirse COPY TO yalnızca belirtilen sütunlardaki verileri dosyaya kopyalar. COPY FROM için, dosyadaki her alan sırayla belirtilen sütuna eklenir. COPY FROM sütun listesinde belirtilmeyen tablo sütunları, varsayılan değerlerini alır.
- COPY komutu PostgreSQL sunucusuna doğrudan dosyadan okuma veya dosyaya yazma talimatı verir bu nedenle dosya, PostgreSQL kullanıcısı tarafından erişilebilir olmalı.
- COPY TO tarafından okunan tablo üzerinde SELECT ve COPY FROM ile değerlerin eklendiği tabldaa INSERT yetkilerinin olması gerekir.
- COPY TO yalnızca tablolarla kullanılabilir, viewlerde kullanılamaz. Bununla birlikte viewin içeriğini kopyalamak istersek COPY komutunu sql sorgusu ile beslemeliyiz( COPY (SELECT * FROM country) TO ‘list_countries.copy’;).
- COPY komutunda adlandırılan dosyalar, client uygulaması tarafından değil, doğrudan sunucu tarafından okunur veya yazılır. Bu nedenle, client da değil, veritabanı sunucusu makinesinde bulunmalı veya bu makine tarafından erişilebilir olmalıdır.
- COPY ile psql’deki \copy’yi karıştırmamalıyız. \copy, COPY FROM STDIN veya COPY TO STDOUT’u çağırır ve ardından verileri psql client tarafından erişilebilen bir dosyada alır ve depolar. Bu nedenle, dosya erişilebilirliği ve erişim hakları, \ opy kullanıldığında sunucudan çok cliente bağlıdır.
Örnekler; (continue reading…)