İSİM¶
CREATE SCHEMA - yeni bir şema tanımlar
KULLANIM¶
CREATE SCHEMA AUTHORIZATION kullanıcı_ismi [ şema_öğesi [ ... ] ]
CREATE SCHEMA şema_ismi
[ AUTHORIZATION kullanıcı_ismi ] [ şema_öğesi [ ... ] ]
AÇIKLAMA¶
CREATE SCHEMA o anki veritabanında yeni bir şema
oluşturur. Şema ismi o anki veritabanındaki şema
isimlerinden farklı olmalıdır.
Bir şema aslında bir isim alanıdır: isimli nesneler
(tablolar, veri türleri, işlevler ve işleçler)
içerir ve bu isimler diğer şemalardaki nesnelerin
isimlerinin tekrarı olabilir. İsimli nesnelere ya isimlerin
önüne şema ismi getirilerek ya da istenen
şemaları içeren bir arama yolu atanarak erişilir.
Bir
CREATE komutunda nitelenmemiş bir nesne isminin
belirtilmesiyle nesne o anki şemada oluşturulur (o anki
şema, current_schema işlevi ile saptanabilen ve arama yolunun
başındaki şemadır).
İsteğe bağlı olarak,
CREATE SCHEMA, yeni
şemada bulunacak nesneleri oluşturacak alt komutları
içerebilir. Bu alt komutlar, aslında, şema
oluşturulduktan sonra verilmiş komutlarmış gibi
çalıştırılır. Yalnız,
eğer
AUTHORIZATION deyimi kullanılmışsa,
oluşturulan tüm nesnelerin sahibi bu kullanıcı
olur.
PARAMETRELER¶
- şema_ismi
- Oluşturulacak şemanın ismi. Belirtilmezse,
şema ismi olarak kullanıcı ismi
kullanılır. İsim, sistem şema isimlerinin
oluşturulmasında kullanılan pg_ öneki ile
başlayamaz.
- kullanıcı_ismi
- Şemanın sahibi olacak kullanıcının
ismi. Belirtilmezse, komutu çalıştıran
kullanıcının ismi
öntanımlıdır. Sadece
ayrıcalıklı kullanıcılar kendileri
dışında bir kullanıcı için
şema oluşturabilir.
- şema_öğesi
- Şema içinde oluşturulacak nesneyi tanımlayan
bir SQL deyimi. Şimdilik, CREATE SCHEMA cümlesinde
sadece CREATE TABLE, CREATE VIEW, CREATE INDEX,
CREATE SEQUENCE, CREATE TRIGGER ve GRANT deyimleri
kullanılabilmektedir. Diğer nesne çeşitleri
şema oluşturulduktan ayrı komutlarla
oluşturulabilir.
EK BİLGݶ
Bir şemayı oluşturabilmek için,
kullanıcının o anki veritabanında
CREATE
yetkisi olması gerekir.
ÖRNEKLER¶
Bir şemayı oluşturmak için:
Şemayı joe kullanıcısı için, kendi
ismiyle oluşturmak için:
CREATE SCHEMA AUTHORIZATION joe;
Bir şemanın, bir sanal ve bir gerçek tabloyla
oluşturulması:
CREATE SCHEMA hollywood
CREATE TABLE films (title text, release date, awards text[])
CREATE VIEW winners AS
SELECT title, release FROM films WHERE awards IS NOT NULL;
Dikkat ederseniz, alt komutların sonunda noktalı virgül
kullanılmamıştır.
Aşağıdaki örnek de aynı sonucu verir:
CREATE SCHEMA hollywood;
CREATE TABLE hollywood.films (title text, release date, awards text[]);
CREATE VIEW hollywood.winners AS
SELECT title, release FROM hollywood.films WHERE awards IS NOT NULL;
UYUMLULUK¶
PostgreSQL'in de kabul ettiği alt komutların yanında SQL
standardı
CREATE SCHEMA içinde
DEFAULT CHARACTER
SET deyimine de izin verir.
SQL standardı,
CREATE SCHEMA içinde bu alt
komutların herhangi bir sırada olabileceğini belirtir.
PostgreSQL gerçeklemesi şimdilik, alt komutlarda ileri
yönde başvurular tüm durumlarda elde edememektedir; ileri
yönde başvurulardan kaçınmak için bazan alt
komutların yeniden sıralanması gerekli olabilmektedir.
SQL standardına göre bir şemanın sahibi daima
içindeki tüm nenelerin sahibidir. PostgreSQL ise,
şemanın içinde başka
kullanıcıların nesnelerine de izin verir. Bu sadece
eğer şema sahibi şemasında
başkalarına
CREATE yetkisi verirse mümkün
olur.
İLGİLİ BELGELER¶
ALTER SCHEMA [
alter_schema(7)],
DROP SCHEMA [
drop_schema(7)].
ÇEVİREN¶
Nilgün Belma Bugüner <nilgun (at)
belgeler·gen·tr>, Nisan 2005