create temporary table (geçici tablo oluşturma)

Geçici bir tablo bir veritabanı oturumu süresince var olan kısa ömürlü bir tablodur. Bir
oturumun veya işlemin sonunda geçici tablolar otomatik olarak drop edilir.

CREATE TEMPORARY TABLE temp_table_name(kolon_listesi );

**Temporary bir tablo yalnızca onu oluşturan oturum tarafından görülebilir. Başka bir
deyişle, diğer oturumlara görünmez.
PostgreSQL özel bir şemada temporary tablolar oluşturur, bu nedenle CREATE TEMP
TABLE ifadesinde şemayı belirtemezsiniz.
**Aynı isimle kalıcı ve geçici (temporary) tablo oluşturulursa oturum boyunca
temporary tablo listelenir.

CREATE TABLE musteri (id SERIAL PRIMARY KEY, name VARCHAR NOT
NULL);
CREATE TEMP TABLE musteri (customer_id INT );
Select * from musteri;

Şekilde görüldüğü gibi temp table kolonu sonuç olarak geldi.
Temporary tabloyu silmek için;

DROP TABLE geçici_tablo_ismi

copy table (tablo kopyalama)

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 yeni_tablo_adi AS TABLE kopyalanacak_tablo_adi;

Veri içermeyen tablo yapısını kopyalamak için ,
CREATE TABLE yeni_tablo_adi AS TABLE kopyalanacak_tablo_adi WITH NO DATA;

Var olan bir tablodan verilerin bir kısmını kopyalayıp yeni tablo oluşturmak için;
CREATE TABLE yeni_tablo_adi AS SELECT * FROM kopyalanacak_
tablo_adi WHERE koşul;

Ö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);