Bu bölümde bunu nasıl yapabileceğimizi tartışacağız. sütunları bırak yardımıyla TABLOYU DEĞİŞTİR emretmek.
PostgreSQL DROP COLUMN Komutu
Bir tablonun bir sütununu bırakmak için ALTER TABLE komutundaki DROP COLUMN koşulunu kullanacağız:
ALTER TABLE table_name DROP COLUMN column_name;
PostgreSQL, bir tablodan bir sütunu silerken sütun da dahil olmak üzere tüm kısıtlamalarını ve dizinlerini otomatik olarak silecektir ve her bırakma sütunu koşulu bir karakterle ayrılır. virgül (,) .
Diğer nesnelerin onlara bağlı olduğu ve ayrıca aşağıdaki gibi diğer veritabanı nesnelerinde kullanılan sütunları silemeyiz. tetikleyiciler, görünümler, saklı prosedürler, vesaire.
Dolayısıyla, bu sütunları ve ona bağlı tüm nesneleri kaldırmak için şunu kullanacağız: ÇAĞLAYAN seçeneğindeki sütunu bırak komut şu şekilde:
ALTER TABLE table_name DROP COLUMN column_name CASCADE;
Mevcut olmayan bir sütunu silmek istersek PostgreSQL bir sorun ortaya çıkaracaktır. Bu hatayı aşmak için aşağıdaki komutta gördüğümüz gibi drop sütunu komutuna IF EXISTS koşulunu ekleyeceğiz:
ağ türleri
ALTER TABLE table_name DROP COLUMN IF EXISTS column_name;
Yukarıdaki komutta, var olmayan bir sütunu silersek PostgreSQL hata yerine bir uyarı verecektir.
Bir tablonun çeşitli sütunlarını tek bir komutla kaldırmamız gerekirse aşağıdaki komutu kullanacağız:
ALTER TABLE table_name DROP COLUMN column_name_1, DROP COLUMN column_name_2;
PostgreSQL DROP COLUMN Komutu Örnekleri
Çalışma şeklini anlamak için bazı örnekler görelim. TABLO BIRAKMA SÜTUNUNU DEĞİŞTİRİN emretmek.
Böylece üç farklı tablo oluşturacağız: Ürün, Kategoriler ve Marka .
Yukarıdaki diyagramda her Ürün yalnızca bir tane içerir marka ve her markanın birden fazla ürünü olabilir. Her ürün bir kategori ve her kategoride çeşitli ürünler bulunabilir.
Üç tabloyu oluşturmak için aşağıdaki komutlar kullanılır (Kategoriler, Ürün ve Marka) :
Oluşturma Kategoriler Aşağıdaki komutun yardımıyla tablo:
CREATE TABLE Categories ( Cate_id serial PRIMARY KEY, Cate_name VARCHAR NOT NULL );
Çıktı
Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki mesajı alacağız; the Kategoriler tablo oluşturuldu.
Oluşturma Ürün aşağıdaki ifadeyi kullanarak tablo:
CREATE TABLE Product ( Pro_id serial PRIMARY KEY, Pro_name VARCHAR NOT NULL, Brand_id INT NOT NULL, Cate_id INT NOT NULL, List_price DECIMAL NOT NULL, Model_year SMALLINT NOT NULL, FOREIGN KEY (Cate_id) REFERENCES Categories (Cate_id), FOREIGN KEY (Brand_id) REFERENCES Brand (Brand_id) );
Çıktı
Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki mesajı alacağız; the Ürün tablo oluşturuldu.
Oluşturma Marka aşağıdaki komutu kullanarak tablo:
CREATE TABLE Brand ( Brand_id serial PRIMARY KEY, Brand_name VARCHAR NOT NULL );
Çıktı
Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki mesajı alacağız; the Marka tablo oluşturuldu.
Ayrıca, şuna dayalı bir görünüm oluşturuyoruz: Ürün Ve Marka tablolar şu şekilde:
CREATE VIEW Product_info AS SELECT Pro_id, Pro_name, Brand_name FROM Product p INNER JOIN Brand B ON B .Brand_id = p.Brand_id ORDER BY Pro_name;
Çıktı
Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki mesajı alacağız; the Ürün bilgisi görünüm oluşturuldu.
Silmek istiyorsak aşağıdaki komutu kullanacağız. cate_id sütunu Ürün masa:
ALTER TABLE Product DROP COLUMN cate_id;
Çıktı
Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki mesajı alacağız; the cate_id sütun düştü Ürün masa.
Tabloyu psql olarak görmek istiyorsak aşağıdaki komutu kullanacağız.
Javatpoint=# d Product;
Yukarıdaki ekran görüntüsünde görebileceğimiz gibi, yukarıdaki komut Cate_id sütunu ve şunları içerir Cate_id sütununu yabancı anahtar kısıtlamasına ekleyin.
Şimdi düşürmeye çalışacağız Brand_id gelen sütun Ürün masa.
ALTER TABLE Product DROP COLUMN Brand_id;
Yukarıdaki komutu çalıştırdığımızda PostgreSQL aşağıdaki hatayı verecektir:
Şunu belirtti: ürün bilgisi görünüm sütunu kullanıyor Brand_id arasında Ürün masa.
Yani, kullanacağız Çağlayan her ikisini de silme seçeneği Brand_id sütun ve Ürün bilgisi aşağıdaki komutun yardımıyla görüntüleyin:
ALTER TABLE Product DROP COLUMN Brand_id CASCADE;
Yukarıdaki komutu uyguladığımızda aşağıdakileri yükseltecektir. fark etme ve belirli sütunu bırakın.
Burada her ikisini de bırakacağız list_price ve Model_year sütunları tek bir komutta kullanmamız gerekiyor ve çoklu BIRAKMA SÜTUNU aşağıda yaptığımız gibi koşullar:
ALTER TABLE Product DROP COLUMN List_Price, DROP COLUMN Model_year;
Çıktı
Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki mesaj penceresini göreceğiz: List_price ve Model_year sütunları oradan düşürüldü Ürün masa.
Yukarıdaki işlemlerin düzgün çalışıp çalışmadığını görmek istiyorsak, Seçme emretmek:
Select * from Product ;
Çıktı
Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki çıktıyı alacağız: