PostgreSQL Copy Table İşlemi

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','[email protected]'),
      ('Yaşar','Kahveci','[email protected]');

Ş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.

Leave a Reply

Your email address will not be published. Required fields are marked *