CREATE DATABASE(7) yeni bir veritabanı oluşturur

KULLANIM

CREATE DATABASE isim
  [ [ WITH ] [ OWNER [=] dbsahibi ]
  [ TEMPLATE [=] şablon ]
  [ ENCODING [=] kodlama ]
  [ TABLESPACE [=] tablo_alanı ] ]

AÇIKLAMA

CREATE DATABASE yeni bir PostgreSQL veritabanı oluşturur.

Bir veritabanını oluşturmak için ya ayrıcalıklı kullanıcı olmalısınız ya da CREATEDB izniniz olmalıdır (CREATE USER [create_user(7)] kılavuz sayfasına bakınız).

Normalde yeni bir veritabanı oluşturan aynı zamanda bu veritabanının sahibi olur. Ayrıcalıklı kullanıcılar OWNER deyimini kullanarak başka kullanıcılar adına veritabanı oluşturabilirler. Hatta özel izinleri olmayan kullanıcılar için bile bunu yapabilirler. CREATEDB yetkisi olan sıradan kullanıcılar sadece kendi veritabanlarını oluşturabilirler.

Öntanımlı olarak, yeni bir veritabanı standart sistem veritabanı olan template1 veritabanının bir kopyası olarak oluşturulur. TEMPLATE isim deyimi kullanılarak farklı bir şablon belirtilebilir. Özel bir durum olarak, TEMPLATE template0 ile sadece PostgreSQL tarafından tanımlanmış standart nesneleri içeren bakir bir veritabanı oluşturabilirsiniz. Bu, template1'e eklenen kuruluma özgü nesnelerin veritabanınıza kopyalanmasını istemediğiniz durumlarda yararlıdır.

PARAMETRELER


isim
Oluşturulacak veritabanının ismi.

dbsahibi
Yeni veritabanının sahibi olacak kullanıcı. Veritabanını oluşturan kullanıcıyı belirtmek için DEFAULT kullanılır.

şablon
Yeni veritabanını oluştururken kullanılacak şablonun ismi. Öntanımlı şablon (template1) kullanılacaksa değer olarak DEFAULT belirtilir.

kodlama
Yeni veritabanında kullanılacak karakter kümesinin kodlaması. Bir dizge sabiti ('SQL_ASCII' gibi), bir tamsayı kodlama numarası ya da öntanımlı kodlamayı kullanmak için DEFAULT belirtilebilir. PostgreSQL sunucusu tarafından desteklen karakter kümeleri
http://www.postgresql.org/docs/8.0/static/multibyte.html adresinde açıklanmıştır.

tablo_alanı
Yeni veritabanı ile ilişkilendirilecek tablo alanının ismi. Şablon veritabanının tablo alanı kullanılacaksa, DEFAULT belirtilebilir. Bu tablo alanı bu veritabanında oluşturulan neseneler için öntanımlı tablo alanı olacaktır. Daha fazla bilgi için CREATE TABLESPACE [create_tablespace(7)] kılavuz sayfasına bakınız.

İsteğe bağlı parametrelerin yukarıda belirtilen sırada yazılması şart değildir, istediğiniz sırada yazabilirsiniz.

EK BİLGİ

CREATE DATABASE bir hareket kümesinin içinde bulunamaz.

"veritabanı dizini ilklendirilemedi" (could not initialize database directory) satırı bulunan hatalar çoğunlukla veri dizininde yeterli izinlerin olmaması, diskin dolmuş olması ya da diğer dosya sistemi sorunlarıyla ilgilidir.

Bir veritabanını kaldırmak için DROP DATABASE [drop_database(7)] kullanılır.

creatdb(1) uygulaması bu komutun yerine kullanılabilir, rahatlık için sağlanmıştır.

Şablon olarak öntanımlı template1 veritabanı yerine ismi belirtilerek başka bir veritabanın belirtilebilmesi, genel amaçlı olan COPY DATABASE yerine kullanılabilecekmiş gibi düşünülmemelidir; bu amaçla (henüz) tasarlanmamıştır. Şablon olarak kullanılan veritabanlarını salt okunur olarak düşünmenizi öneririz. Daha fazla bilgi için
http://www.postgresql.org/docs/8.0/static/manage-ag-templatedbs.html adresinde bakınız.

ÖRNEKLER

Yeni bir veritabanı oluşturmak için:

CREATE DATABASE lusiadas;

Öntanımlı salesspace tablo alanlı, sahibi salesapp kullanıcısı olacak sales veritabanını oluşturmak için:

CREATE DATABASE sales OWNER salesapp TABLESPACE salesspace;

ISO-8859-1 karakter kümesini destekleyen music veritabanını oluşturmak için:

CREATE DATABASE music ENCODING 'LATIN1';

UYUMLULUK

SQL standardında CREATE DATABASE diye bir deyim yoktur. Veritabanları, oluşturulması gerçeklenim tanımlı kataloglara eşdeğerdir.

ÇEVİREN

Nilgün Belma Bugüner <nilgun (at) belgeler·gen·tr>, Nisan 2005