Copy table

Bir tabloyu hem tablo yapısı hem de verileri dahil olmak üzere tamamen kopyalamak
için aşağıdaki ifade kullanılır.

CREATE TABLE new_table_name AS TABLE copy_table_name;

Veri içermeyen tablo yapısını kopyalamak için ,

CREATE TABLE new_table_name AS TABLE copy_table_name
WITH NO DATA;

Var olan bir tablodan verilerin bir kısmını kopyalayıp yeni tablo oluşturmak için;

CREATE TABLE new_table_name AS SELECT * FROM copy_table_name 
WHERE condition;

Örnekler:

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

INSERT INTO iletisim(first_name, last_name, email)
VALUES(‘Ali’,’Yılmaz’,’ayılmaz@postgres.com’),
(‘Davut’,’Yıldırım’,’davudyıl @postgres.com’);

CREATE TABLE iletisim_backup AS TABLE iletisim;

Resimde görüldüğü üzere iletisim_backup tablosunun yapısı indexler hariç
iletisim tablosu ile aynıdır.
iletişim_backup tablosuna primary key ve UNIQUE kısıtlamaları eklemek için
aşağıdaki ALTER TABLE ifadelerini çalıştırılır.

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