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','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.