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