PostgreSQL Copy Table İşlemi

Yusuf Kahveci
SQL Türkiye
Published in
2 min readJun 11, 2019

Bu yazımızda PostgreSQL üzerinde bir tabloyu nasıl ve ne şekilde kopyalayabiliriz onu göreceğiz.

Syntax:

CREATE TABLE new_table AS 
TABLE existing_table;

Eğer tabloda ki datayı değilde sadece meta-data sını kopyalamak istiyor iseniz WITH NO DATA komutunu kullanmanız yeterli.

CREATE TABLE new_table AS 
TABLE existing_table
WITH NO DATA;

Eğer var olan bir tablodan belirli bir data set ini almak istiyor isek ;

CREATE TABLE new_table AS 
SELECT
*
FROM
existing_table
WHERE
condition;

Yukarıda ki sorgunun WHERE bloğunda ki koşul istediğimiz data set ini belirlememizi sağlıyor.

Örneğimiz ile daha da net kavrıyor olacağız ,

CREATE TABLE demo001(
id SERIAL PRIMARY KEY,
first_name VARCHAR NOT NULL,
last_name VARCHAR NOT NULL,
email VARCHAR NOT NULL UNIQUE
);

Şimdide demo01 tablomuza data basalım.

INSERT INTO demo001(first_name, last_name, email) 
VALUES('Yusuf','Kahveci','yusuf.kahveci@sqlturkiye.com'),
('Yaşar','Kahveci','info@sqlturkiye.com');

Şimdide demo01 tablomuzun backup ını alalım.

CREATE TABLE demo001_backup 
AS TABLE demo001;

Oluşan backup tablomuza SELECT çekelim.

Şimdi de meta-data bilgisine bakalım backup tablomuzun.

Ana tablo ile backup tablosunda Constraintler taşınmadığından backup lama işleminden sonra onları backup tablosuna oluşturabilirsiniz.

ALTER TABLE demo001_backup ADD PRIMARY KEY(id);
ALTER TABLE demo001_backup ADD UNIQUE(email);

Şimdi ise WITH NO DATA ile kopyalama işlemi yapalım.

CREATE TABLE demo001_backup_noData
AS TABLE demo001 WITH NO DATA;

Şimdi SELECT çektiğimizde tablomuzda data olmadığını göreceksiniz.

Kolay Gelsin.

--

--