- İSİM
- CREATE DATABASE — yeni bir veritabanı oluşturur
- KULLANIM
CREATE DATABASE isim
[ [ WITH ] [ OWNER [=] dbsahibi ]
[ TEMPLATE [=] şablon ]
[ ENCODING [=] kodlama ]
[ TABLESPACE [=] tablo_alanı ] ]
- Açıklama
CREATE DATABASE yeni bir PostgreSQLTM 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 Bilgi
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.
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.
- Çeviren
Nilgün Belma Bugüner <nilgun (at) belgeler·gen·tr>, Nisan 2005